exim4 - отключить автоответы об ошибке SMTP с удаленного почтового сервера после RCPT

У меня есть настройка exim4 на domain1 перед другим сервером, domain2 (с sendmail). Второй сервер не имеет прямого доступа к Интернету, поэтому домен1 является MX для домена2. И домен2 установлен как hubbed_host в exim4 на домене1.

Когда спамер отправляет сообщение для no_such_user@domain2, его sendmail делает отклонение:

550 5.1.1 <no_such_user@domain2>... User unknown

Затем exim4 в домене 1 выполняет автоответ:

This message was created automatically by mail delivery software.

A message that you sent could not be delivered to one or more of its
recipients. This is a permanent error. The following address(es) failed:

  no_such_user@domain2
    SMTP error from remote mail server after RCPT TO:<no_such_user@domain2>:
    host 10.0.0.1 [10.0.0.1]: 550 5.1.1 <no_such_user@domain2>... User
unknown

Спамеры используют поддельное поле "от", и такие сгенерированные сообщения на длительное время замораживаются exim.

Как я могу отключить некоторые или все автоответы из exim4? В идеале мне нужен фильтр, если сообщение не было доставлено с ошибкой "Пользователь неизвестен", а не генерировать автоответ от mailer-daemon.

Спасибо!

2 ответа

Решение

Я думаю, что это сообщение в блоге - это то, что вы ищете.

Проблема: когда почтовый сервер принимает сообщение, а затем решает, что он не может доставить сообщение, он должен отправить обратно отказавшее электронное письмо отправителю исходного сообщения. Эти отказов электронной почты часто неправильно.

Для многих MTA есть решения, поэтому вот мое решение для exim:

Solution: This solution uses filtering to discard bounced back emails. So your exim should have a central filter. Such filter can be configured in exim.conf configuration file […]

Ваша проблема в том, что вы не проверяете адрес получателя во время RCPT. Это легко исправить.

Используйте проверку выноски для получателя. "Удаленный" сервер, с которым вы общаетесь, находится под вашим контролем, так что это не оскорбительно.

В ACL, назначенном для acl_smtp_rcpt, у вас есть правило, которое "проверяет = получателя". Не зная ваших правил, я не могу точно сказать, что делать. Если эта строка находится в блоке "принять", то перед ней вы можете добавить еще один блок принятия, почти такой же, с добавленным ограничением "домены = домен2" и который "проверяет = получателя / выноску" (добавляя эти 8 символов). в конце). Если это блок "require" вместо "accept", то после этого блока вы можете добавить блок "deny", например:

  deny  domains = domain2
        !verify = recipient/callout

Есть больше опций для управления такими вещами, как тайм-ауты, действия в отношении отсрочки и т. Д. См. §40.42 "Дополнительные параметры для обратных вызовов" спецификации Exim (где-то в вашей системе должен быть "spec.txt").

Другие вопросы по тегам