2010-06-29 5 views
3

J'essaie de gérer les messages rebondis et d'envoyer à un administrateur système responsable.Traitement d'un email Rebondir dans CakePHP et Postfix

J'utilise CakePHP Component Email pour envoyer le message. Du côté serveur, j'utilise postfix pour transporter le message.

function sendAsEmail($data) { 
    $Email->sendAs = 'html'; 
    $Email->from = $user['Sender']['username'] . '@example.com'; 
    $Email->return = Configure::read('App.systemAdminEmail'); 
    $Email->bcc = array($data['Message']['recipient_text']); 
    $content = 'Some content'; 
    $Email->send($content); 
} 

Comme vous pouvez le voir ci-dessus, je mis le retour Email- $> au courriel de sysadmin qui il enverra tout le message rebondi.

Sur configuration postfix, j'ai essayé de créer un modèle de bounce.cf et définir bounce_template_file. http://www.howtoforge.com/configure-custom-postfix-bounce-messages

Comment puis-je obtenir le message et l'envoyer rebondi à l'administrateur système?

+0

... et quelle est votre question? –

+0

question ajoutée en bas – user181677

Répondre

1

Je pense que vous devez faire est d'utiliser un serveur SMTP (ou je suppose que POP3) connecteur pour PHP. Ensuite, vous devrez créer votre propre client de messagerie PHP qui se connectera au serveur, demandera les messages qui ont été rebondis et les analysera correctement.

Je pense qu'il y aurait une composante CakePHP pour cela, mais je ne peux pas trouver un.

Je vous recommande d'utiliser un en-tête d'enveloppe dans votre e-mail. Sinon, vous serez bloqué en essayant d'analyser le rebond du serveur du destinataire, et ceux-ci sont très incohérents. Si vous utilisez l'en-tête VERP (variable envelope return protocol?), Vous pouvez encoder un hachage unique dans l'adresse e-mail, ce qui devrait être très facile à analyser dans votre PHPEmailClient.

Plus d'info sur PREV: http://en.wikipedia.org/wiki/Variable_envelope_return_path

trucs PREV spécifiques à gâteau: http://www.mainelydesign.com/blog/view/setting-envelope-from-header-cakephp-email-component

Je recommande aussi fortement que vous regardez en utilisant SwiftMailer. Il a beaucoup de plugins; vous pourriez trouver un client PHP SMTP de base que vous pouvez facilement modifier pour faire ce dont vous avez besoin. http://swiftmailer.org/