En fait, la réponse d'Instyle est très difficile à implémenter si vous souhaitez prendre en charge de nombreux domaines différents et elle est erronée car:
a) Avec son exemple de transport_maps
, tous les e-mails envoyés à ce domaine sont envoyés à ce service spécifique sans égard au fait que les e-mails soient des e-mails renvoyés ou non. Puisqu'il utilise un nom de domaine spécifique, il ne doit en effet être renvoyé que par e-mails ... mais cela ne peut pas être garanti de cette façon.
b) Les données envoyées à votre script sont l'e-mail lui-même et non le message de rebond. En d'autres termes, votre code peut n'avoir aucune idée de la raison pour laquelle l'e-mail a été renvoyé (c'est-à-dire que le rebond local vous enverra uniquement l'e-mail d'origine.)
La bonne façon de faire cette configuration dans postfix est d'utiliser la classe de notification de rebond.
1) Dans /etc/postfix/main.cf
notify_classes = bounce
bounce_notice_recipient = bounces@example.com
transport_maps = hash:/etc/postfix/transport_maps
2) Dans / etc / postfix / transport_maps
# when you make changes to this file, run:
# sudo postmap /etc/postfix/transport_maps
bounces@example.com bulkbounce:
Comme vous pouvez le voir, nous demandons maintenant à postfix d'utiliser bounces@example.com
chaque fois qu'un e-mail est renvoyé. Ensuite, dans la carte de transport, à utiliser bulkbounce
comme service pour gérer n'importe quelle adresse e-mail bounces@example.com
.
Enfin, vous pouvez définir bulkbounce
avec votre script:
3) Dans /etc/postfix/master.cf
bulkbounce unix - n n - - pipe
flags=FRq user=bounce argv=/home/bounce/bin/snapbounce --sender ${sender} --recipient ${recipient}
Ce script nécessite que vous ayez un utilisateur. nobody
est aussi un bon choix. Si vous souhaitez avoir un utilisateur spécifique, vous pouvez le créer avec:
useradd bounce
Sans le script master.cf
, les e-mails sont envoyés au compte bulkbounce. Donc, si vous avez un script qui analyse les e-mails des fichiers, cela fonctionnerait sans les modifications transport_maps
et master.cf
.
D'après un commentaire ci-dessous:
fyi-re: double rebonds ...
si vous modifiez l'adresse de retour (adresse VERP comme user+id@fromdomain.com
, alors vous voudrez commenter la ligne main.cf
pour le bounce_notice_recipient
, si vous êtes intéressé à analyser le +id
rebond uniquement dans votre script.
Message-Id
dans votre en-tête, elle doit être renvoyée et cela être assez pour vérifier qui est qui.