среда, апреля 04, 2007

Exchange и 451+4.7.1+Greylisting+in+action,+please+come+back+in+00:05:00

В форуме TechNet есть тема о том, что отправляемые сообщения пропадают или приходят с задержкой... 2 недели. Причина – некорректная обработка SMTP сервером ошибок 4XX, которые говорят о временной недоступности сервиса. (возможно, что только на серверах, где стоит Symantec Mail Security 5)

Как правило ошибки 4XX возникают редко, но в последнее время этот код используется антиспамовыми системами с технологей Graylisting. Например на серверах ozon.ru, gacworld.com, edunet.ru.

В SMTP логах это выглядит так:

451+4.7.1+Greylisting+in+action,+please+come+back+in+00:05:00

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

Если Exchange при отправке по SMTP получает статус ошибки 4XX, то следующая попытка отправки будет предпринята не через 10 минут, как определено в First retry interval, а три раза через каждые 60 секунд. Эти 60 сек называются Glitch retry. Если в эти попытки отправка не произойдет, то след. попытка будет предпринята через First retry interval.

Это хорошо видно по логам SMTP сервера(я их немного порезал J).

Попытка 1. (Glitch retry)
07:37:21 MAIL - FROM:<Pavel.Nagaev@mydomain.ru>+SIZE=10761 0
07:37:21 - - 250+Ok 0 0 6 0 141 - - - -
07:37:21 RCPT - TO:<admin@edunet.ru> 0 0 4 0 2453 - - - -
07:37:21 450+<admin@edunet.ru>:+Recipient+address+rejected:+Greylisted+for+300+seconds
07:37:21 RSET - - 0 0 4 0 2500 - - - -

Попытка 2. (Glitch retry)
07:38:22 MAIL - FROM:<Pavel.Nagaev@mydomain.ru>+SIZE=10761 0
07:38:22 - - 250+Ok 0 0 6 0 141 - - - -
07:38:22 RCPT - TO:<admin@edunet.ru> 0 0 4 0 141 - - - -
07:38:22 - - 450+<admin@edunet.ru>:+Recipient+address+rejected:+Greylisted+for+239+seconds
07:38:22 RSET - - 0 0 4 0 188 - - - -

Попытка 3. (Glitch retry)
07:39:23 MAIL - FROM:<Pavel.Nagaev@mydomain.ru>+SIZE=10761 0
07:39:23 - - 250+Ok 0 0 6 0 141 - - - -
07:39:23 RCPT - TO:<admin@edunet.ru> 0 0 4 0 141 - - - -
07:39:23 - - 450+<admin@edunet.ru>:+Recipient+address+rejected:+Greylisted+for+178+seconds
07:39:23 RSET - - 0 0 4 0 250 - - - -

Попытка 4. (First retry interval)
Обратите внимание на время. Прошло ровно 10 минут после последней отправки.
07:49:24 MAIL - FROM:<Pavel.Nagaev@mydomain.ru>+SIZE=10761 0
07:49:24 - - 250+Ok 0 0 6 0 156 - - - -
07:49:24 RCPT - TO:<admin@edunet.ru> 0 0 4 0 156 - - - -
07:49:24 - - 250+Ok 0 0 6 0 203 - - - -
07:49:24 DATA - - 0 0 4 0 203 - - - -
07:49:24 - - 354+End+data+with+<CR><LF>.<CR><LF> 0 0 35 0 250 - - - -
07:49:24 - - 250+Ok:+queued+as+2992F5829E 0 0 28 0 406 - - - -
07:49:24 QUIT - - 0 0 4 0 515 - - - -
07:49:24 - - 221+Bye 0 0 7 0 547 - - - -

Exchange нормально отрабатывает. В чем же могут быть проблемы? Проблема может быть, если Greylisting настроен на reject больше 3 минут и время жизни записи 10 минут. Тогда с настройками по умолчанию на SMTP сервере письмо не сможет быть доставлено. Glitch retry в 60 сек. можно настраивать вручную согласно статьи: How to Configure Glitch Retry Interval in Exchange Server 2003
Дополнительно можно почитать отличную статью о том, как SMTP сервер доставляет сообщения : Explaining the Mysterious SMTP Advanced Queuing Engine

Пост из NEWS конференции

Пожалуйста, напишите про подобную проблему если сталкивались. Очень признателен буду за e-mail на который Exchange не отправляет почту из-за этой проблемы.

Комментариев нет: