Обработка возврата электронной почты в CakePHP и Postfix

Я пытаюсь обработать возвращенное сообщение и отправить ответственному системному администратору.

Я использую компонент электронной почты CakePHP для отправки сообщения. На стороне сервера я использую постфикс для передачи сообщения.

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);
}

Как вы можете видеть выше, я установил $Email->return на адрес электронной почты системного администратора, на который он будет отправлять все возвращенные сообщения.

В конфигурации postfix я попытался создать шаблон bounce.cf и установить файл bounce_template_file. http://www.howtoforge.com/configure-custom-postfix-bounce-messages

Как получить возвращенное сообщение и отправить его системному администратору?


person user181677    schedule 29.06.2010    source источник
comment
... и какой у вас вопрос?   -  person Pekka    schedule 29.06.2010


Ответы (1)


Я думаю, что вам нужно будет использовать коннектор SMTP (или, я полагаю, POP3) для PHP. Затем вам в основном придется создать свой собственный почтовый клиент PHP, который будет входить на сервер, запрашивать сообщения, которые были возвращены, и анализировать их соответствующим образом.

Я бы подумал, что для этого должен быть компонент CakePHP, но я не могу его найти.

Я бы порекомендовал вам использовать заголовок конверта в вашей электронной почте. В противном случае вы застрянете, пытаясь разобрать отказ сервера-получателя, а это очень и очень непоследовательно. Если вы используете заголовок VERP (протокол возврата с переменным конвертом?), вы можете закодировать уникальный хэш в адрес электронной почты, который будет очень легко разобрать в вашем PHPEmailClient.

Дополнительная информация о VERP: http://en.wikipedia.org/wiki/Variable_envelope_return_path

Материалы VERP для торта: http://www.mainelydesign.com/blog/view/setting-envelope-from-header-cakephp-email-component

Я также настоятельно рекомендую вам изучить SwiftMailer. Имеет множество плагинов; вы можете найти базовый SMTP-клиент PHP, который вы можете легко изменить, чтобы делать то, что вам нужно. http://swiftmailer.org/

person Travis Leleu    schedule 29.06.2010