2016-05-30 3 views
3

В настоящее время я работаю на сервере Centos 7, который использует exim для обработки писем в сочетании с swiftmailer. Когда электронное письмо отскакивает, «ошибка» будет отправлена ​​на мой адрес электронной почты. Вместо того, чтобы получать отскок в виде электронной почты, я хотел бы иметь возможность отправить «ошибку» в скрипт. Если вы искали способ сделать это, но я не могу найти ответ в Интернете.Как отправить (exim) письмо в php-файл

Есть ли способ сделать это вообще? Если да, то как это можно сделать?

ответ

1

Вы должны написать один маршрутизатор и один транспорт.

Маршрутизатор должен обнаружить сообщение об отказе отправителем <>. Таким образом, вы должны поместить следующий конфиг в начале routers раздела:

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

Глагол unseen означает, что обработка сообщения не должны останавливаться после согласованного маршрутизатора, а сообщение обрабатывается двумя различными способами одновременно. Один из способов приводит к тому, что входящие, а другие - к скрипту.

Далее вы должны создать транспорт. Заказ транспорта не имеет значения:

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

Здесь сообщение передается через трубу к stdin исполняемым запущенному с некоторыми аргументами. Это все.

+0

Спасибо за ответ, но это приводит к: Ожидаемый код ответа 220, но получил код "", с сообщением "" –

+0

Как вы получите ответ? И где? – Kondybas

+0

Это ответ, который я получаю от swiftmailer после того, как попытаюсь отправить электронное письмо. –