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.

Abraham Vegh
fuente

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 [email protected]donde 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.

mailq
fuente
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
    
Richard Hansen
fuente
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 [email protected] ahora se reenviará a [email protected], etc.

Encontré esto en este tutorial de Howtoforge

HectorMalot
fuente
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:<[email protected]>
RCPT TO:<[email protected]>
250 2.1.5 Ok
DATA
354 End data with <CR><LF>.<CR><LF>
Message-ID: <[email protected]>                                                                                                               
Date: Thu, 05 May 2011 23:59:59 -0400                                                                                                                    
From: Some Body <[email protected]>                                                                                                                   
To: [email protected]                                                                                                                                
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=<[email protected]>
Apr  6 22:39:43 smtp-a postfix/qmgr[3681]: 6B47641AF2: from=<[email protected]>, 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] <[email protected]> -> <[email protected]>, Queue-ID: 5C61F41AE5, Message-ID: <[email protected]>, 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=<[email protected]>, 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=<[email protected]>, orig_to=<[email protected]>, 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
BaseZen
fuente
-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:

/^[email protected]/ [email protected]

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.

Calamares
fuente
¿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: [email protected]
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