Use Postfix para reenviar el correo a un dominio a la misma dirección en un dominio diferente


8

¿Hay alguna forma de configurar Postfix para aceptar cualquier correo para un dominio (global) y luego reenviar ese correo electrónico al mismo destinatario en un dominio diferente, ignorando si el destinatario realmente existe?

Yo uso Postfix con un respaldo de MySQL para cuentas virtuales.

Respuestas:


8

No, esto no es directamente posible. Hay una excepción sobre cómo puede funcionar descrita en http://www.postfix.org/ADDRESS_REWRITING_README.html#luser_relay

Otra solución cruda sería usar SQL (substr + concat) para manejar esto en el archivo virtual_alias_maps.

Editar : Oh. Hay una última posibilidad. Use el mecanismo de delegación de políticas y regrese REDIRECT localpart@other-domain.exampledonde lo necesite y DUNNOsi no desea reescribir.

Edición 2 : inspirado por Squidly (¡pero su solución no funciona!) Puede configurar

virtual_alias_maps = pcre:/etc/postfix/forward_user.pcre, ...

y en ese archivo poner

/^(.*)@adomain\.example/    $(1)@other-domain.example

(Tenga cuidado con el punto escapado (\.) En la primera columna). Personalmente, preferiría esta versión.


La tercera solución funcionó para mí. sin embargo, tuve que instalar el postfix-pcrepaquete (ubuntu 12.10)
— scytale

1

El tipo de tabla pcre no está disponible en mi sistema, así que hice lo siguiente:

  • En /etc/postfix/main.cf:

    virtual_alias_maps = regexp:/etc/postfix/virtual
    
  • En /etc/postfix/virtual:

    /^([^@]*)@olddomain/ $(1)@newdomain
    

0

Si usa MySQL como el fin de almacenamiento, creo que puede especificar un catch all forward como este:

Reenvíos de tablas

| source       | destination   |
|==============|===============|
| @example.com | @yoursite.com |

Si leo la documentación correctamente, significaría que user1@example.com ahora se reenviará a user1@yoursite.com, etc.

Encontré esto en este tutorial de Howtoforge


0

¿No es posible directamente? Lo encontré muy simple y directo sin SQL, expresiones regulares o mecanismos de política.

En main.cf:

virtual_alias_domains = alias-destination1.com alias-destination2.com
virtual_alias_maps = hash:/etc/postfix/virtual

En /etc/postfix/virtual:

# I want @true-destination.com to have two incoming aliases
@alias-destination1.com @true-destination.com
@alias-destination2.com @true-destination.com

Enviar un correo electrónico de prueba desde el servidor:

# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 smtp.myserver.com ESMTP Postfix
HELO smtp.myserver.com
250 smtp.myserver.com
MAIL FROM:<somebody@gmail.com>
RCPT TO:<anyuser@alias-destination1.com>
250 2.1.5 Ok
DATA
354 End data with <CR><LF>.<CR><LF>
Message-ID: <4DC3723F.8010907@myserver.com>                                                                                                               
Date: Thu, 05 May 2011 23:59:59 -0400                                                                                                                    
From: Some Body <somebody@gmail.com>                                                                                                                   
To: anyuser@alias-destination1.com                                                                                                                                
Subject: Hello                                                                                                                                           
Just testing.                                                                                                                                            
.

Y el resultado real en mail.log (tengo amavis en el puerto 10025 ejecutándose):

Apr  6 22:39:43 smtp-a postfix/smtpd[4411]: connect from localhost[127.0.0.1]
Apr  6 22:39:43 smtp-a postfix/smtpd[4411]: 6B47641AF2: client=localhost[127.0.0.1]
Apr  6 22:39:43 smtp-a postfix/cleanup[3706]: 6B47641AF2: message-id=<4DC3723F.8010907@myserver.com>
Apr  6 22:39:43 smtp-a postfix/qmgr[3681]: 6B47641AF2: from=<somebody@gmail.com>, size=1115, nrcpt=1 (queue active)
Apr  6 22:39:43 smtp-a postfix/smtpd[4411]: disconnect from localhost[127.0.0.1]
Apr  6 22:39:43 smtp-a amavis-incoming[2159]: (02159-13) Passed CLEAN {RelayedInternal}, LOCAL [127.0.0.1]:42426 [127.0.0.1] <somebody@gmail.com> -> <anyuser@alias-destination1.com>, Queue-ID: 5C61F41AE5, Message-ID: <4DC3723F.8010907@myserver.com>, mail_id: hUbzH1PtXlzl, Hits: 2.605, size: 394, queued_as: 6B47641AF2, 1224 ms
Apr  6 22:39:43 smtp-a postfix/lmtp[3687]: 5C61F41AE5: to=<anyuser@alias-destination1.com>, relay=127.0.0.1[127.0.0.1]:10024, delay=25, delays=24/0/0/1.2, dsn=2.0.0, status=sent (250 2.0.0 from MTA(smtp:[127.0.0.1]:10025): 250 2.0.0 Ok: queued as 6B47641AF2)
Apr  6 22:39:43 smtp-a postfix/qmgr[3681]: 5C61F41AE5: removed

Línea clave separada para enfatizar:

Apr  6 22:39:43 smtp-a postfix/smtp[3684]: 6B47641AF2: to=<anyuser@true-destination.com>, orig_to=<anyuser@alias-destination1.com>, relay=10.0.0.245[10.0.0.245]:2525, delay=0.03, delays=0.01/0/0/0.02, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 705AA40459)
Apr  6 22:39:43 smtp-a postfix/qmgr[3681]: 6B47641AF2: removed

-1

Dependiendo de cómo configure su Postfix, puede usar un alias para reenviar todo el correo.

editar

También puede configurar una redirección que lo hará por usted fácilmente.

En /etc/postfix/main.cf agregue esto:

recipient_bcc_maps = pcre:/etc/postfix/forward_bcc.pcre

Luego, en /etc/postfix/forward_bcc.pcre agregue esto:

/^user@olddomain.com/ user@newdomain.com

Es un truco, pero funcionará para reenviar usuarios específicos de un dominio a otro.

También puede consultar esta página para ver cómo reescribir dentro de Postfix.


¿Puedes ser mas específico? Sé que puedo especificar @somedomain.comreenviar todo el correo a una dirección específica , pero quiero saber si puedo reenviar al mismo destinatario.
— Abraham Vegh

en / etc / aliases configúrelo así. $ username: $username@newdomain.com
— Squidly

@Squidly Su edición no es una expresión regular y no funcionará. Comenta sobre / etc / aliases no funcionará ya que el OP solo tiene usuarios virtuales.
— mailq

@mailq. Eso está en vivo en mi servidor en este momento. Funciona perfectamente para múltiples redirecciones. Tampoco dijo que estos eran SOLO usuarios virtuales. También estaba dando opciones para mirar.
— Calamar
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.