Cómo redirigir todo el correo electrónico saliente desde postfix a una sola dirección para probar

13

Estoy configurando un servidor de prueba para una aplicación basada en web que envía algunas notificaciones por correo electrónico.

A veces, las pruebas se realizan con datos reales del cliente y, por esa razón, necesito garantizar que el servidor no pueda enviar correos electrónicos a nuestros clientes reales mientras realizamos las pruebas.

Lo que quiero es configurar postfix para que tome cualquier correo electrónico saliente y lo redirija a una sola dirección de correo electrónico, en lugar de entregarlo al destino real.

Estoy ejecutando el servidor Ubuntu 9.10.

Gracias de antemano

thatjuan
fuente

Respuestas:

19

Configure un usuario local para recibir todo el correo atrapado:

adduser mailtrap

Necesita agregar en main.cf:

transport_maps = hash:/etc/postfix/transport
luser_relay = mailtrap

Luego cree / etc / postfix / transport con esto allí:

localhost :
your.hostname.example.com:
* local:mailtrap

Guardar y luego ejecutar: postmap /etc/postfix/transportfinalmente reiniciar postfixinvoke-rc.d postfix restart

Todos los correos electrónicos locales se enviarán normalmente y los correos electrónicos externos se enviarán a la mailtrapcuenta local .

Andrew Schulman
fuente
Esto es exactamente lo que estaba buscando ... ¡gracias!
thatjuan
3
Obras para mí, pero sólo después de que añaden luser_relay = xxxxxen main.cf. Sin esto, los correos electrónicos rebotarían.
Alex R
1
Al usar Ubuntu, también puede reiniciar Postfix con sudo service postfix restart. La ubicación de su archivo main.cf mencionado anteriormente es /etc/postfix/main.cf. Al instalar y configurar Postfix por primera vez, puede usar la Local onlyopción de instalación.
mtnorthrop
en MAC deberías correr postmap hash:/etc/postfix/transporty sudo postfix stop,sudo postfix start
Bang Dao
esto es genial. ¿Alguien sabe cómo eliminar duplicados cuando un mensaje tiene múltiples destinatarios?
graywh
10

Mejor es crear un archivo de alias virtual:

En /etc/postfix/main.cf:

virtual_alias_maps = pcre:/etc/postfix/virtual

En / etc / postfix / virtual:

/.*@.*/ root

Puede reemplazarlo rootcon cualquier usuario que desee recibir todo el correo electrónico saliente. Este patrón se puede ajustar si desea que el correo local se entregue normalmente (sin redireccionamiento):

/.*@(?!hostname\.localdomain$).*/ root

Idea original encontrada aquí: servidor de desarrollo Postfix - intercepta todo el correo saliente

Paul Gideon Dann
fuente
2
Tenga en cuenta que es posible que necesite de sudo apt-get install postfix-pcreantemano, para evitar ... sorpresas.
mirabilos
me funciona muy bien!
michael-mammut
error "Usuario desconocido en la tabla de alias virtual"
Alex R
5

Postfix proporciona algo llamado smtp-sink. De forma predeterminada, bloquea todos los correos electrónicos que recibe. Las versiones posteriores también se pueden configurar para capturar el correo electrónico en archivos.

Esto técnicamente no usa postfix (sino una utilidad proporcionada por postfix). Técnicamente, tampoco redirige cada correo electrónico a una sola dirección de correo electrónico. Pero captura todo el tráfico en el puerto 25 y lo descarga en un archivo que se puede analizar.

carro derribado
fuente
¿Cómo se invoca smtp-sink? La única página de manual que encontré en línea hizo que pareciera que es un programa normal, pero si viene con postfix, no está instalado en mi sistema (OSX 10.6). ¿Cómo ejecutaría esto un servicio?
Chris Bloom
Hay una página de manual para smtp-sink. Pero aquí también se describen algunos parámetros: blog.malowa.de/2011/04/postfix-as-spam-trap-server.html
mailq