2016-05-30 1 views
3

Je travaille actuellement sur un serveur Centos 7 qui utilise exim pour gérer les emails en combinaison avec swiftmailer. Quand un email rebondit, "l'erreur" sera envoyée à mon adresse e-mail. Au lieu de recevoir le rebond comme un email, je voudrais pouvoir envoyer le "error" à un script. Si je cherchais un moyen de le faire, mais je suis incapable de trouver la réponse en ligne.Comment envoyer un rebond (exim) email à un fichier php

Existe-t-il un moyen d'accomplir cela? Si tel est le cas, comment cela peut-il se faire?

Répondre

1

Vous devez écrire un routeur et un transport.

Le routeur doit détecter le message de rejet par l'expéditeur <>. Donc, vous devez placer la prochaine config au début de routers section:

begin routers: 
bounce_processor: 
    driver = accept 
    condition = ${if eq{$sender_address}{"<>"}} 
    transport = bounce_script 
    unseen 
. . . . . 

Verbe unseen signifie que le traitement des messages ne doit pas arrêter routeur après apparié mais un message est traité de deux façons différentes simultanément. Un chemin mène à la boîte de réception tandis que d'autres - au script.

Ensuite, vous devez créer le transport. Ordre des transports n'a pas d'importance:

bounce_script: 
    driver = pipe 
    command = /path/script -arg1 -arg2 

Ici message est transmis par le conduit à l'stdin de l'exécutable lancé avec quelques args. C'est tout.

+0

Merci pour la réponse, mais il en résulte: Code de réponse attendue 220 mais a reçu le code "", avec le message "" –

+0

Comment obtenez-vous cette réponse? Et où? – Kondybas

+0

C'est la réponse que je reçois de Swiftmailer après que j'aie essayé d'envoyer un email. –