Это связано с этим вопросом:
linux - способы получить отчет о возврате для моего информационного бюллетеня? - Ошибка сервера
Допустим, я генерирую адреса электронной почты, подобные этому, когда я отправляю новостные рассылки, чтобы идентифицировать отказов, и отписываюсь от них в моей новостной рассылке: bounce-123456789@example.com
Я предполагаю, что использовал бы это в обратном пути, верно?
Тогда как мне настроить его в postfix, чтобы собрать все эти адреса с префиксом «bounce-» в один почтовый ящик?
Наконец, я слышал, что люди упоминают мягкий отскок против жесткого. Может ли кто-то объяснить разницу и как они должны рассчитывать, чтобы знать, когда навсегда удалить кого-либо из бюллетеня электронной почты?
email
postfix
email-server
Брайан Армстронг
источник
источник
Message-Id
в заголовок, он должен быть отправлен обратно, и это будет хватит проверять кто есть кто.Ответы:
Точный ответ на ваш вопрос (обработка
bounce-xxx@example.com
адреса) зависит от того, как настроен ваш сервер для получения почты. Еслиexample.com
это виртуальный домен, лучшее, что вы можете сделать, это собрать сообщения вbounce@example.com
почтовый ящик (при условииrecipient_delimiter = -
).Если
example.com
это локально доставленный домен для сервера (почта доставляется фактическим системным учетным записям), то вы можете добавить.forward
файл в домашний каталогbounce
пользователя, который доставляет программу, которая анализирует информацию о сбое и записывает ее в базу данных или файл. , Смотритеman local
для получения дополнительной информации о.forward
формате и как доставить в программу.То, что мы делаем, поскольку мы отправляем сообщения для большого количества доменов, это использование в
bounces.example.com
качестве нашего домена VERP. Этот домен необходимо добавить вrelay_domains
. Создать/etc/postfix/transport_maps
с этим содержанием:Затем добавьте строку, похожую на эту
/etc/postfix/master.cf
:bounce_handler.py
Скрипт принимает адрес VERP в качестве своей опции командной строки, анализирует его и делает необходимые обновления базы данных для записи отказов.источник
На самом деле, ответ Instyle очень сложно реализовать, если вы хотите поддерживать много разных доменов, и он неправильный, потому что:
а) По его примеру
transport_maps
, все электронные письма, отправленные на этот домен, отправляются в эту конкретную службу, независимо от того, являются ли электронные письма отклоненными. Поскольку он использует конкретное доменное имя, на самом деле это должны быть только отклоненные электронные письма ... но это не может быть гарантировано таким образом.б) Данные, отправленные в ваш сценарий, являются самим электронным письмом, а не сообщением об отказе. Другими словами, ваш код может не иметь представления о том, почему электронное письмо было отклонено (т. Е. Локальное восстановление отправит вам только оригинальное письмо).
Правильный способ сделать эту настройку в postfix - использовать класс уведомлений об отказе.
1) В /etc/postfix/main.cf
2) В / etc / postfix / transport_maps
Как вы можете видеть, теперь мы говорим postfix использовать
bounces@example.com
каждый раз, когда письмо получает отказ. Затем в транспортной карте, чтобы использоватьbulkbounce
в качестве службы для обработки любого адреса электронной почтыbounces@example.com
.Наконец, вы можете определить
bulkbounce
с помощью вашего скрипта:3) В /etc/postfix/master.cf
Этот скрипт требует, чтобы у вас был пользователь.
nobody
это тоже хороший выбор. Если вы хотите иметь конкретного пользователя, вы можете создать его с помощью:Без сценария
master.cf
письма отправляются на учетную запись. Так что если у вас есть скрипт , который разбирает письма из файлов, это будет работать безtransport_maps
иmaster.cf
изменений.Из комментария ниже:
источник
+id@
может быть какой-то конверт?Большинство современных программ для рассылки уже знают, как обрабатывать сообщения VERP, если MTA правильно настроен для передачи их обратно в программу рассылки. В случае GNU Mailman вы должны зайти на страницу часто задаваемых вопросов, которая называется «Как мне использовать VERP с разделителем - (Postfix receient_delimiter)?».
Если вы создаете свое собственное программное обеспечение для информационных бюллетеней, чтобы справиться с этим, вам следует спросить себя, почему вы заново изобретаете колесо, а не используете существующие приложения, которые уже могут легко и легко справиться с этой задачей.
источник