У меня есть несколько псевдонимов электронной почты, которые пересылаются на внешние хосты. В настоящее время, если внешний хост отклоняет сообщение, Exim генерирует рикошет и отправляет его исходному отправителю. Это плохо, потому что если внешний хост отклоняет сообщение как спам (обычный случай), то я являюсь источником спама обратного рассеивания.
Таким образом, если отправитель не является местным, я хотел бы вместо этого отправить сообщение о недоставке почтмейстеру (мне). В качестве альтернативы отправка все отказов почтмейстеру было бы достаточно.
Документация Exim подсказки что это можно сделать ("когда сообщение не может быть доставлено ... Exim отправляет сообщение исходному отправителю, или альтернативный настроенный адрес", курсив мой), но я не мог найти, как это сделать.
Например, вот отрывок из журнала, показывающий, что создается спам обратного рассылки (в этом случае предполагаемый исходный сервер не принимает соединения). foo@nacha.net
является предполагаемым отправителем спама по адресу bar@reidster.net
, который затем пересылается на baz@gmail.com
; Затем GMail отклоняет сообщение, и мой сервер отправляет сообщение foo@nacha.net
. Я хочу, чтобы отскок ушел в postmaster@reidster.net
вместо. (Имена пользователей зашифрованы; остальная часть журнала дословная.)
2011-10-03 12:03:08 1RAkyw-0000cj-45 <= foo@nacha.net H=(gyajnj.com [113.190.35.111] P=esmtp S=33927 id=000e01cc51a7$ceee1700$6f23be71@nacha.net
2011-10-03 12:03:09 1RAkyw-0000cj-45 ** baz@gmail.com <bar@reidster.net> R=dnslookup T=remote_smtp: SMTP error from remote mail server after end of data: host gmail-smtp-in.l.google.com [74.125.47.26]: 552-5.7.0 Our system detected an illegal attachment on your message. Please\n552-5.7.0 visit http://mail.google.com/support/bin/answer.py?answer=6590 to\n552 5.7.0 review our attachment guidelines. i3si13239001yhk.107
2011-10-03 12:03:09 1RAkyz-0000cm-H5 <= <> R=1RAkyw-0000cj-45 U=Debian-exim P=local S=35124
2011-10-03 12:03:09 1RAkyw-0000cj-45 Completed
2011-10-03 12:03:30 1RAkyz-0000cm-H5 nacha.net [64.212.215.180] Connection timed out
2011-10-03 12:03:30 1RAkyz-0000cm-H5 == foo@nacha.net R=dnslookup T=remote_smtp defer (110): Connection timed out
Вот соответствующий маршрутизатор:
dnslookup:
debug_print = "R: dnslookup for $local_part@$domain"
driver = dnslookup
domains = ! +local_domains
transport = remote_smtp
same_domain_copy_routing = yes
# ignore private rfc1918 and APIPA addresses
ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8 : 192.168.0.0/16 :\
172.16.0.0/12 : 10.0.0.0/8 : 169.254.0.0/16 :\
255.255.255.255
no_more
Некоторые правила глупы, потому что приносят больше вреда, чем пользы! И люди, которые их защищают и создают, это знают. Меня бы больше заботила этика почтмейстера, чем глупые правила. И я ненавижу глупые правила и, очевидно, людей, устанавливающих эти правила. Если вы, как и я, знаете о последствиях (см. Выше) и хотите нарушить правила, тогда обязательно,
1) Установите проверку отправителя и получателя, чтобы обезопасить себя ИЛИ
2) Отменить или заморозить все отказы нулевого почтмейстера. Сделайте это с помощью системного фильтра exim
system_filter = /etc/exim/screwtherules.exim
vi /etc/exim/screwtherules.exim
if $sender_address is ""
then
if ${lookup{${extract{2}{@}{$recipients}}}lsearch{/etc/localdomains}{yes}{no}} is "no"
then
fail text "Delayed bounce message ignored"
seen finish
endif
endif
3) ИЛИ создайте ACL во время проверки acl_smtp_data для пересылки, сбоя или блокировки электронных писем с нулевым рикошетом, отправляемых или не отправляемых определенным хостам. Вы можете извлечь полученную информацию из заголовка, как описано в https://grepular.com/Exim_Trick_to_Extract_Received_Header_IP_Addresses
Ваш подход нарушает RFC 5321, где вы должны доставить или вернуть отправителю. Есть только очень ограниченные исключения: http://tools.ietf.org/html/rfc5321#section-6.2
Итак, у вас есть три варианта
Выберите вариант 3. Но лучше запретить пересылку писем или усилить фильтрацию спама перед пересылкой этих писем.
Это можно сделать с помощью errors_to
директива в маршрутизаторе. Я считаю, что Exim также поддерживает некоторые условия, чтобы делать это выборочно.