En realidad, la respuesta de Instyle es muy difícil de implementar si desea admitir muchos dominios diferentes y es incorrecta porque:
a) Con su ejemplo de transport_maps, todos los correos electrónicos enviados a ese dominio se envían a ese servicio específico sin tener en cuenta si los correos electrónicos son correos devueltos o no. Dado que usa un nombre de dominio específico, en realidad solo debería ser un correo electrónico devuelto ... pero no se puede garantizar de esa manera.
b) Los datos enviados a su script son el correo electrónico en sí y no el mensaje de devolución. En otras palabras, es posible que su código no tenga idea de por qué se rechazó el correo electrónico (es decir, el rebote local solo le enviará el correo electrónico original).
La forma correcta de hacer esa configuración en postfix es usar la clase de notificación de rebote.
1) En /etc/postfix/main.cf
notify_classes = bounce
bounce_notice_recipient = bounces@example.com
transport_maps = hash:/etc/postfix/transport_maps
2) En / etc / postfix / transport_maps
# when you make changes to this file, run:
# sudo postmap /etc/postfix/transport_maps
bounces@example.com bulkbounce:
Como puede ver, ahora le decimos a Postfix que use bounces@example.comcada vez que un correo electrónico sea devuelto. Luego, en el mapa de transporte, para usar bulkbouncecomo servicio para manejar cualquier dirección de correo electrónico bounces@example.com.
Finalmente puedes definir bulkbouncecon tu script:
3) En /etc/postfix/master.cf
bulkbounce unix - n n - - pipe
flags=FRq user=bounce argv=/home/bounce/bin/snapbounce --sender ${sender} --recipient ${recipient}
Este script requiere que tengas un usuario. nobodyEs una buena opción también. Si desea tener un usuario específico, puede crearlo con:
useradd bounce
Sin la secuencia de comandos master.cf, los correos electrónicos se envían a la cuenta de rebote. Entonces, si tiene un script que analiza los correos electrónicos de los archivos, esto funcionaría sin los cambios transport_mapsy master.cf.
De un comentario a continuación:
fyi - re: doble rebotes ...
si está modificando la dirección de retorno (dirección VERP como user+id@fromdomain.com, entonces, querrá comentar la línea main.cfpara bounce_notice_recipient, si está interesado en analizar el +idrebote solo en su secuencia de comandos.
Message-Iden su encabezado, debe devolverse y eso sería baste para comprobar quién es quién.