У нас есть веб-приложение, которое отправляет электронную почту. Прямо сейчас, если мы отправляем электронное письмо, и оно отклоняется (по какой-либо причине), никто не знает, так как оно приходит с адреса без ответа, который никогда не проверяется на возврат.
Некоторые из этих писем очень важны, и мы хотели бы показать неудавшуюся попытку электронной почты в интерфейсе.
Моя мысль сделать это:
Для # 2, когда я создаю milter, вводит ли postfix идентификатор очереди, когда он передает почту скрипту? Я нахожусь на ранних стадиях этого процесса и еще не заставил его работать. Кроме того, я решил использовать фильтр содержимого SMTP в пост-очереди (http://www.postfix.org/FILTER_README.html). Это правильный выбор?
Просто используйте адрес в качестве отправителя конверта, который фактически отслеживается.
Делай это так:
Как видите, первоначальный получатель (получатель @ получатель домен) кодируется в адрес отправителя, который вы используете. Если письмо возвращается, оно возвращается обратно в bounces + recipient = recipientdomain @ $ yourdomain - так что вообще без разбора вы можете узнать, какой адрес был возвращен!
Это называется VERP и используется менеджерами списков рассылки, такими как ezmlm или mailman: https://en.wikipedia.org/wiki/Variable_envelope_return_path
Предложенный вами подход ошибочен, поскольку статус «250 OK» на самом деле не означает, что письмо не будет возвращено последующими ретрансляторами!