Обнаружение возвращенных сообщений заголовком Return-Path

некоторое время назад я увидел вопрос об обнаружении отскок сообщений:

Я работаю над инструментом, который будет отправлять массовые сообщения (а не спам:), и мне нужно добавить функцию, которая будет обнаруживать отскоченные сообщения. Существует ли стандартный ответ, связанный с отскоками? Будет ли это в заголовке тела? By Santa, 2011-09-12


Вы не можете полагаться ни на заголовки, ни на тело возвращенного сообщения, чтобы иметь возможность надежно идентифицировать первоначального получателя, особенно если вы хотите автоматизировать процесс. Даже если вы добавляете собственные собственные заголовки, вероятно, что отскакивающий сервер будет лишать их, когда он отправит вам уведомление..............................

Единственный фрагмент информации, который останется полностью нетронутым в отскоке, - это адрес электронной почты с обратным адресом - адрес, который ваш сервер рекламирует, и он хочет получить отсканированные сообщения. Таким образом, единственный способ автоматизировать поистине точный захват отказов - это кодирование получателя непосредственно в адрес обратного пути. Обычно это делается путем переопределения адреса пути возврата по умолчанию для каждого исходящего сообщения с использованием уникального значения для каждого получателя, например, bounce [email protected], где XXXXX является некоторым закодированным и/или запутанным представлением адреса электронной почты получателя или другой внутренний идентификатор. Этот метод требует использования сервера электронной почты, который может поддерживать этот тип общего доступа к карте, чтобы вам не приходилось настраивать новую учетную запись отказов для каждого отправляемого вами адреса электронной почты. Предполагая, что вы просто настроили сервер, чтобы сбрасывать все такие отсканированные * письма на ваш script, который должен только расшифровать XXXXX, чтобы определить, кто был первоначальным получателем. ответил Сен 12 '11 Алекс Хоански

Вышеизложенное кажется отличным решением. Теперь мой вопрос:

Как настроить почтовый сервер Postfix (или любой другой), чтобы сбрасывать каждый возвращенный адрес электронной почты из учетной записи [email protected] на script, который будет анализировать и получать личность исходного получателя? Сохранен ли script каталог на почтовом сервере и сбрасываемое сообщение в том же каталоге?

Будет ли сторонний поставщик услуг электронной почты настраивать учетную запись электронной почты для отправки сообщений и устанавливать script на сервере?

Sing

Ответ 1

Соответствующий стандарт называется VERP, кстати.

Вы имеете в виду [email protected], а не просто [email protected]. Этот токен делает его уникальным!

Postfix уже принимает почту для [email protected] с допустимым адресом [email protected], пока вы настраиваете recipient_delimiter в main.cf:

recipient_delimiter = +

Существует несколько различных способов настройки Postfix, чтобы он доставлял почту на ваш script И рассказывал вам, что такое токен. Попробуйте следующее:

  • Создайте адрес [email protected] так же, как вы создаете псевдонимы, обычно в этом домене: например. регулярный псевдоним или виртуальный почтовый ящик

  • Создайте собственный транспорт доставки в master.cf. ${extension} означает, что script получит все, что было после + в качестве своего первого аргумента, а <username> должен использовать локальный uid, под которым должен работать script.

    bounce   unix  -       n       n       -       -       pipe
      flags=R user=<username> argv=/script/which/receives/bounces ${extension}
    
  • Создайте транспортную карту, если ее еще нет:

    transport_maps = hash:/etc/postfix/transport
    
  • Добавьте следующую строку в /etc/postfix/transport, чтобы направить [email protected] на новый транспорт, который вы создали в master.cf:

    [email protected]    bounce:
    
  • Восстановить транспортную карту:

    postmap /etc/postfix/transport