Электронная почта: уведомления от серверов
Если в процессе доставки сообщений какой-то из почтовых
серверов обнаруживает ошибку, он уведомляет отправителя соответствующим
образом. Формат сообщения свободный, он различается у разных MTA, но
принципиальных отличий нет: в любом случае это сообщение содержит
информацию о том, какой сервер обнаружил ошибку, при взаимодействии с
каким сервером и какая именно это ошибка. Далее несколько примеров
сообщений от MTA Sendmail, который используется на серверах ООО
"КРАФТ-С". Таким образом выделено само сообщение, таким образом выделены комментарии.
Пример 1. Письмо не доставлено, доставка прекращена.
Ниже заголовок сообщения, в поле From можно увидеть, какой именно сервер сформировал bounce-сообщение. В данном случае это relay1.hippo.ru.
Subject: Returned mail: see transcript for details From: Mail Delivery Subsystem < MAILER-DAEMON@relay1.hippo.ru > To: test@kraft-s.ru Date: 24/01/18 12:27
Далее
идёт само сообщение. Эта фраза говорит о том, откуда relay1.hippo.ru
получил это сообщение - myhost.kraft-s.ru [10.1.1.1]. Указаны имя хоста и
IP-адрес. Имя хоста может отсутствовать, если оно не задано на
DNS-сервере.
The original message was received at Wed, 24 Jan 2018 12:27:40 +0400 from myhost.kraft-s.ru [10.1.1.1]
Ниже
сама ошибка, её тип, поясняющая фраза и E-Mail, обработка которого
вызвала ошибку. В данном случае ошибка постоянная. Постоянными ошибками
являются ошибки с кодом 5xx. Поясняющая фраза пишется в произвольной
форме и зависит от предпочтений администратора почтового сервера,
который выдал ошибку. Существует возможность поменять даже те фразы,
которые вкомпилированы в код MTA.
----- The following addresses had permanent fatal errors ----- < test12345@mail.ru >
(reason: 550 Message was not accepted -- invalid mailbox. Local
mailbox test12345@mail.ru is unavailable: user is terminated)
Далее
представлен фрагмент протокола обмена между сервером, который
сформировал это сообщение (relay1.hippo.ru) и сервером, с которым
происходило соединение - mxs.mail.ru. Последовательностью ">>>"
отмечена команда, переданная на mxs.mail.ru, последовательностью
"<<<" - ответ mxs.mail.ru на эту команду.
----- Transcript of session follows ----- ... while talking to mxs.mail.ru.: >>> DATA <<<
550 Message was not accepted -- invalid mailbox. Local mailbox
test12345@mail.ru is unavailable: user is terminated 554 5.0.0 Service unavailable
То
есть, сообщение "550 Message was not accepted -- invalid mailbox.
Local mailbox test12345@mail.ru is unavailable: user is terminated"
сформировано сервером mxs.mail.ru. Точную причину, соответственно, могут
знать только ответственные за этот сервер, а остальные могут только
догадываться, исходя из фразы-расшифровки. В данном случае всё
достаточно очевидно переводится. Кроме этого, письмо содержит вложение
либо с заголовком исходного сообщения, либо с исходным сообщением
целиком.
Пример 2. Письмо не доставлено, доставка будет продолжаться.
Заголовок
практически такой же, как и в предыдущем примере, но в теме
присутствует информация о том, что это предупреждение, и за сколько не
удалось отправить сообщение.
Subject: Warning: could not send message for past 4 hours From: Mail Delivery Subsystem < MAILER-DAEMON@relay1.hippo.ru > To: test@kraft-s.ru Date: 24/01/18 17:01
В самом сообщении ещё раз подчёркивается, что это только предупреждение, и смысла в повтороной отправке нет:
********************************************** ** THIS IS A WARNING MESSAGE ONLY ** ** YOU DO NOT NEED TO RESEND YOUR MESSAGE ** **********************************************
Точно так же, как в первом примере, указывается источник:
The original message was received at Wed, 24 Jan 2018 12:19:30 +0400 from myhost.kraft-s.ru [10.1.1.1]
Далее
следует причина - невозможность соединения с сервером example.com.
Кроме того, указано время, в течение которого не получилось доставить
сообщение (4 часа) и время, в течение которого будут осуществляться
попытки доставки (5 суток).
----- Transcript of session follows ----- < test@example.com >... Deferred: Connection timed out with example.com. Warning: message still undelivered after 4 hours Will keep trying until message is 5 days old
Время
первого предупреждения, интервал повторов и время продолжения попыток
регламентируются в RFC 5321 в виде рекомендаций и не являются строго
выдержанными интервалами. В зависимости от индивидуальных настройек
сервера, эти времена могут варьироваться в разумных пределах. Кроме
того, эти интервалы могут быть изменены параметром Priority при
формировании сообщения в почтовом клиенте. Вместо "Connection timed out" может быть "Connection refused by" - когда сервер отвечает закрытием соединения (например, за счёт настроек фарвола).
Так
же, подобная (временная) ошибка может быть вызвана и ответом
принимающего сервера. В этом случае вид подсказок будет соответствовать
примену 1, но ошибка будет с кодом 4xx, а не 5xx.
Пример 3. Письмо не не доставлено, доставка прекращена (завершение примера 2).
Сообщение
из примера 2 пробыло в очереди 5 дней и удалено из неё. При этом
формируется нижеследующее уведомление о прекращении попыток.
Subject: Returned mail: see transcript for details From: Mail Delivery Subsystem < MAILER-DAEMON@relay1.hippo.ru > To: test@kraft-s.ru Date: 29/01/18 13:18
The original message was received at Wed, 24 Jan 2018 12:19:30 +0400 from myhost.kraft-s.ru [10.1.1.1]
----- The following addresses had permanent fatal errors ----- < test@example.com >
----- Transcript of session follows ----- ... Deferred: Connection timed out with example.com. Message could not be delivered for 5 days Message will be deleted from queue
|