Exim - множество замороженных сообщений без отправителя

Я новичок в Exim, и я использую его как smarthost (чтобы получать электронные письма от пользователей и отправлять их моему интернет-провайдеру). enter image description here

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

Где я могу начать отлаживать это?

Спасибо миллион.

Ответы

Ответ 1

Это сообщения об отказе. Что-то отправляет сообщения через ваш почтовый сервер, но получатель не принимает его, поэтому ваша система генерирует сообщение о отказе. Отказ от отказов также отклоняется, поэтому они становятся "замороженными" с помощью exim MTA. Вам нужно выяснить, откуда пришли сообщения изначально и остановить поток этих несанкционированных сообщений.

exigrep 1UorWC-0002Nz-Mz /var/log/exim/main.log (или независимо от вашего пути)

Это обнаружит сообщение bounce в почтовых журналах. Я выбрал замороженное сообщение в моей почтовой очереди в качестве примера (1UosOk-0000ej-KG):

# exigrep 1UosOk-0000ej-KG /var/log/exim/main.log
+++ 1UosOk-0000ej-KG has not completed +++
2013-06-18 09:40:22 1UosOk-0000ej-KG <= <> R=1UosOf-0000bX-BV U=www P=local S=894 
2013-06-18 09:40:24 1UosOk-0000ej-KG ** [email protected] P=<> R=dnslookup_forwarder 
  T=remote_smtp_forwarder: SMTP error from remote mail server after RCPT TO:<[email protected]>: 
  host mail.example.biz [80.76.197.72]: 554 5.7.1 <[email protected]>: Relay access denied
2013-06-18 09:40:24 1UosOk-0000ej-KG Frozen (delivery error message)

В первой строке говорится, что сообщение bounce 1UosOk-0000ej-KG было создано в ответ на сообщение 1UosOf-0000bX-B (это то, что R = фразу в обозначение <= line). Теперь найдите идентификатор сообщения THAT, чтобы узнать, откуда это сообщение. В моем случае это не было отсканированное сообщение, это был автоответчик клиента:

# exigrep 1UosOf-0000bX-BV /var/log/exim/main.log
2013-06-18 09:40:18 1UosOf-0000bX-BV H=example.biz [62.189.29.157] Warning: SPF PASS (pass) to m.ivenue.com: 
  domain of example.biz designates 62.189.29.157 as permitted sender
2013-06-18 09:40:22 1UosOf-0000bX-BV <= [email protected] H=example.biz [62.189.29.157] P=esmtp S=17624
2013-06-18 09:40:22 1UosOf-0000bX-BV => /netapp3/mail/maildirs/b/o/y/boyexample.com/sarah/Maildir/ 
  ([email protected]) <[email protected]> P=<[email protected]> R=virtual_user T=address_directory
2013-06-18 09:40:22 1UosOf-0000bX-BV => sarah <[email protected]> P=<[email protected]> 
  R=autoresponder_always T=autoresponder_always_t
2013-06-18 09:40:22 1UosOf-0000bX-BV Completed

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

Обычно вы не захотите повторно отправить эти замороженные сообщения. Однако, если сообщения были заморожены из-за некоторой временной ошибки в сети или конфигурации, и вы хотите, чтобы exim повторно отправил их, вам необходимо создать список замороженных сообщений и сообщить Exim о их доставке. Самый простой способ - с помощью программы exiqgrep:

exiqgrep -z -i | xargs -n 1 exim -M

Ответ 2

Замороженные письма бесполезны в очереди exim. Вы можете удалить все это, чтобы уменьшить список очереди exim.

Следующая команда удалит все замороженные письма:

exim -bpr | grep frozen | awk {'print $3'} | xargs exim -Mrm

или

exiqgrep -z -i | xargs exim -Mrm

Если вы хотите удалить замороженные письма старше определенного часа, например, 24 часа:

exiqgrep -zi -o 86400 | xargs exim -Mrm

86400 означает 24 часа в секундах. Это может быть соответствующим образом изменено.

Ответ 3

Замороженные отскоки могут автоматически очищаться exim, устанавливая параметр конфигурации ignore_bounce_errors_after на подходящее значение, например

ignore_bounce_errors_after = 12h

автоматически удалит эти ошибки отказов через 12 часов.