Пользователь на сервере Exchange 2003 отправляет e-mail с Pavel@mydomain.ru на JR@externalcompany.com.
Ему почти сразу возвращается отбой:
Your message did not reach some or all of the intended recipients.
Subject: Hotel room
Sent: 30.04.2008 10:24
The following recipient(s) cannot be reached:
JR@externalcompany.com on 30.04.2008 10:26
You do not have permission to send to this recipient. For assistance, contact your system administrator.
<myserver.mydomain.ru #4.7.1 smtp;451 4.7.1 Temporarily rejected. Try again later.>
Все бы ничего, но только какого черта код ошибки 4.7.1? Я всегда считал, что сервер будет пытаться отправить сообщение в течение двух дней согласно установленных интервалов и если сообщение не может быть доставлено, то пришлет NDR. В этом случае может быть код временной ошибки, но отбой пришел в течение 5 минут.
Вопрос, почему отбой пришел не с ошибкой 5.7.1, а 4.7.1. Смотрим логи.
06:24:19 220+mailf01.externalcompany.com+Microsoft+ESMTP+MAIL+Service, 0
06:24:19 EHLO myserver.mydomain.ru 0
06:24:19 250-mailf01.externalcompany.com+Hello+[81.211.51.161] 0
06:24:19 MAIL FROM:<Pavel@mydomain.ru>+SIZE=10634 0
06:24:20 250+2.1.0+Pavel@mydomain.ru….Sender+OK 0
06:24:20 RCPT TO:<JR@externalcompany.com> 0
06:24:20 451+4.7.1+Temporarily+rejected.+Try+again+later. 0
06:24:20 RSET — 0
06:24:20 250+2.0.0+Resetting 0
По логам видно, что принимающий сервер отбил с временной ошибкой 4.7.1+Temporarily+rejected. В наше время Greylistingа это вполне нормальная ситуация, только обычно об этом пишут в отбое.
В следующем куске лога видно, что через 1:23 мой сервер возобновил попытку отправки. Тоже странно, Glitch interval должен быть 60 сек, а не 123сек, но это отдельная история. Так вот, во второй попытке видно, что отбой 5.7.1 идет после BDAT, значит, на этот раз отбил какой-то Content filter по причине содержимого письма.
06:25:43 220+mailf01.externalcompany.com+Microsoft+ESMTP+MAIL+Service, 0
06:25:43 EHLO myserver.mydomain.ru 0
06:25:43 250-mailf01.externalcompany.com+Hello+[81.211.51.161] 0
06:25:43 MAIL FROM:<Pavel@mydomain.ru>+SIZE=10634 0
06:25:43 250+2.1.0+Pavel@mydomain.ru….Sender+OK 0
06:25:43 RCPT TO:<JR@externalcompany.com> 0
06:25:44 250+2.1.5+JR@externalcompany.com+ 0
06:25:44 BDAT 10634+LAST 0
06:25:44 550+5.7.1+Message+rejected. 0
06:25:44 QUIT — 0
После этого мой сервер генерит NDR, но только внимание!!! Вместо того, чтобы поставить в NDR ошибку 550+5.7.1+Message+rejected, он ставит 451+4.7.1+Temporarily+rejected.+Try+again+later.
Почему — непонятно.
Если есть идеи, напишите, подумаем вместе. Сваливать это на глюк Exchange 2003 совсем не хочется.
Я гонял телнетом принимающий сервер, у него действительно стоит какой-то фильтр, который отбивает на минуту все входящие соединения с временной ошибкой 4.7.1.