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.