Назад | Перейти на главную страницу

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

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

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

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

Затем exim4 в domain1 сделает автоответчик следующим образом:

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.

Спасибо!

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

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

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

  deny  domains = domain2
        !verify = recipient/callout

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

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

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

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

Решение. В этом решении используется фильтрация для отбрасывания возвращенных писем. Итак, ваш exim должен иметь центральный фильтр. Такой фильтр можно настроить в exim.conf Файл конфигурации […]