In realtà, la risposta di Instyle è molto difficile da implementare se si desidera supportare molti domini diversi ed è errata perché:
a) Con il suo esempio di transport_maps
, tutte le e-mail inviate a quel dominio vengono inviate a quel servizio specifico indipendentemente dal fatto che le e-mail siano o meno e-mail rimbalzate. Dal momento che utilizza un nome di dominio specifico, in realtà dovrebbe essere solo e-mail rimbalzate ... ma non può essere garantito in questo modo.
b) I dati inviati al tuo script sono l'e-mail stessa e non il messaggio di rimbalzo. In altre parole, il tuo codice potrebbe non avere idea del motivo per cui l'e-mail è stata rimbalzata (ovvero il rimbalzo locale ti invierà solo l'e-mail originale).
Il modo corretto di eseguire tale configurazione in postfix è utilizzare la classe di notifica di rimbalzo.
1) In /etc/postfix/main.cf
notify_classes = bounce
bounce_notice_recipient = bounces@example.com
transport_maps = hash:/etc/postfix/transport_maps
2) In / etc / postfix / transport_maps
# when you make changes to this file, run:
# sudo postmap /etc/postfix/transport_maps
bounces@example.com bulkbounce:
Come puoi vedere, ora diciamo a postfix di usarlo bounces@example.com
ogni volta che viene rimbalzata un'e-mail. Quindi nella mappa di trasporto, utilizzare bulkbounce
come servizio per gestire qualsiasi indirizzo e-mail bounces@example.com
.
Finalmente puoi definire bulkbounce
con il tuo script:
3) In /etc/postfix/master.cf
bulkbounce unix - n n - - pipe
flags=FRq user=bounce argv=/home/bounce/bin/snapbounce --sender ${sender} --recipient ${recipient}
Questo script richiede di avere un utente. nobody
è anche una buona scelta. Se vuoi avere un utente specifico, puoi crearlo con:
useradd bounce
Senza lo script in master.cf
, le e-mail vengono inviate all'account bulkbounce. Quindi, se si dispone di uno script che analizza le e-mail dai file, questo funzionerebbe senza il transport_maps
e le master.cf
modifiche.
Da un commento qui sotto:
fyi - re: doppi rimbalzi ...
se stai modificando l'indirizzo di ritorno (indirizzo VERP come user+id@fromdomain.com
, allora vorrai commentare la riga main.cf
per bounce_notice_recipient
, se sei interessato ad analizzare il +id
rimbalzo solo nel tuo script.
Message-Id
nell'intestazione, deve essere rispedito e che basta controllare chi è chi.