1. Начало
  2. Имейл (e-mail)
  3. SMTP кодове за статус на доставката на писмото

SMTP кодове за статус на доставката на писмото

Подобно на HTTP статус кодовете, които се подават от уеб сървъра за индикация на статуса на клиентската заявка, мейл сървърите също използват статус кодове - SMTP статус кодове. SMTP статус кодовете индикират статуса на доставката на писмото.

Когато дадено писмо не може да се достави успешно, получаващият мейл сървър връща автоматично съобщение (Delivery Status Notification) към подателя. Това съобщение се нарича още “bounce message” или само “bounce”. Съобщението съдържа SMTP статус код за доставката и е с изпращач Mailer-Daemon@senderdomain.com (Mail Delivery System).

В уеб един от най-разпознаваемите статус кодове е 404 Not Found. Когато се опитате да заредите даден уебсайт и получите съобщение 404, знаете, че търсеният от Вас уеб ресурс не е наличен на сървъра.

По същият начин, когато изпратите писмо и в отговор получите bounce съобщение със SMTP статус код 550-5.1.1., ще знаете, че или адресът на получателя е объркан или просто такъв не съществува при получаващия мейл сървър. Може да опитате отново да изпратите писмото, като първо проверите и коригирате имейл адреса на получателя.

SMTP кодове

SMTP статус кодовете се състоят всъщност от два вида кодове - SMTP код на отговора на заявката/командата и SMTP код за статуса на доставката.

Преди да бъдат добавени SMTP статус кодовете (Enhanced Mail System Status Codes), като разширение към имейл услугата, за статус са се използвали SMTP кодовете за отговор. И двата вида кодове се използват и до днес в имейл системата за посочване на статуса на доставката.

Например в съобщението:

550 5.1.1 emailnotvalid@abv.bg: Recipient address rejected:User unknown in virtual mailbox table

  • 550 е кодът, с който получаващият мейл сървър е отговорил на командата (RCPT TO:emailnotvalid@abv.bg), подадена от изпращащия мейл сървър;
  • 5.1.1 е статус кодът за доставката на писмото.

Бележка: Използването на SMTP кодовете може да се различава при различните имейл сървъри и услуги. Възможно е да се предоставя само един от двата вида кодове или и двата. След SMTP кодовете, налични в съобщението за недоставено писмо, се предоставя текст, описващ по-детайлно причината за грешката, в случая “Recipient address rejected: User unknown in virtual mailbox table”.

Бележка: Информацията в съобщенията за отказ от доставка се различава при различните мейл услуги например Outlook, Yahoo, Gmail: SMTP error reference.

Пълно описание на съответстващите си SMTP кодове (Code-статус код/Associated basic status code-код на отговора) може да се види в таблицата с кодове на официалната организация, която отговаря за регистрацията на тези кодове: IANA: Simple Mail Transfer Protocol(SMTP) Enhanced Status Codes Registry.

SMTP кодовете за отговор, които са най-често приложими към SMTP статус кодовете за доставка на писмата са:

  • 4xx - Временен отказ от изпълнение. Изпращачът може да направи нов опит за изпращане на писмото.
  • 5xx - Перманентен отказ от изпълнение. Ще е нужно допълнително действие и промяна на писмото, преди да се направи нов опит.

SMTP статус кодовете, които се добавят след тези за отговор, се състоят от три цифрови части, разделени с точка (x.xxx.xxx):

status-code = class"." subject"." detail

  • class = може да е: 2, 4 или 5
  • subject = от 1 до 3 цифри
  • detail = от 1 до 3 цифри

Класът на статус кода може да бъде един от трите:

  • 2.xxx.xxx (Success) - успех;
  • 4.xxx.xxx (Persistent Transient Failure) - временен проблем;
  • 5.xxx.xxx (Permanent Failure) - постоянен проблем;

Например статус код: 5.1.1 - Първата част от кода “class” индикира дали доставката е успешна или не (5). Втората част “subject” (1) показва предполагаем източник за проблема с доставката. Третата част “detail” (1) посочва точната причина за грешката.

SMTP статус кодът 5.1.1 означава:

  • 5.x.x (Permanent Failure) - Доставката не е успешна и това е постоянен отказ от доставяне. Повторен опит за изпращане на съобщението в този му вид също няма да бъде успешен.
  • x.1.x (Addressing Status) - Индикира предполагаем проблем с адреса на получателя - синтаксис или валидност. Този тип код за грешка предполага, че подателят може да извърши корекция на адреса и да направи повторен опит за изпращане.
  • x.1.1 (Bad destination mailbox address) - Посочената пощенска кутия не съществува. Адресът, който е преди частта с домейна (преди @) е невалиден. Този код индикира постоянен проблем, който няма да се оправи с повторно изпращане на писмото, без да е нанесена промяна в адреса.

Всички SMTP статус кодове можете да видите в спецификацията: RFC 3463.

SMTP статус кодове 4.x.x и 5.x.x

SMTP статус кодовете за неуспешна доставка (4.x.x и 5.x.x) може да се определят като:

  • 4.x.x - “soft bounce” или "мек отказ за доставяне". Тези кодове индикират временен проблем с доставянето на писмото. Мейл сървърът на изпращача може да направи следващи опити да изпрати писмото.
  • 5.x.x - “hard bounce” или “твърд отказ за доставяне” - проблемът с доставянето на писмото е постоянен. Мейл сървърът на изпращача няма да прави опити да изпрати отново писмото.

SMTP статус кодове 4.x.x

SMTP статус кодовете за мек отказ за доставяне започват с 4.x.x и най-честите причини за получаването им са:

  • запълнена дискова квота за пощенската кутия;
  • писмото е с прекалено голям размер;
  • временно отпадане на мейл сървъра на получателя.

Изпращащият мейл сървър знае как да процедира, когато получи определени SMTP статус кодове от мейл сървъра на получателя. За някои от тях той автоматично реагира и изпълнява определени действия. Например когато се върне от получателя код за мек отказ от доставяне, при запълнена квота на получателя например, той ще опита да изпрати писмото отново след известен период от време например 24, 48, 72 часа. След определен брой отхвърляния на писмото изпращащият мейл сървър ще се откаже от по-нататъшни опити да изпрати до този получател.

4.2.2 - Запълнена дискова квота

Този статус код означава, че пощенската кутия на получателя е запълнена. Единствено получателят може да отстрани този проблем. Той ще трябва да освободи място в пощата си, за да може да получава имейл съобщения.

Примерно съобщение с код 4.2.2 за неуспешно доставяне на писмо в имейл акаунт със запълнена квота:

From: Mail Delivery System Mailer-Daemon@goodexample.eu
Subject: Warning: message 1hdwCd-0002nw-BK delayed 24 hours
This message was created automatically by mail delivery software.
A message that you sent has not yet been delivered to one or more of its recipients after more than 24 hours on the queue on goodexample.eu.

The address to which the message has not yet been delivered is:

emailoverquota@gmail.com
host alt4.gmail-smtp-in.l.google.com [173.194.203.27]
SMTP error from remote mail server after RCPT TO:emailoverquota@gmail.com:
452-4.2.2 The email account that you tried to reach is over quota. Please direct
452-4.2.2 the recipient to
452-4.2.2 https://support.google.com/mail/?p=OverQuotaTemp w2plp.271 - gsmtp:
retry timeout exceeded

No action is required on your part. Delivery attempts will continue for some time, and this warning may be repeated at intervals if the message remains undelivered. Eventually the mail delivery software will give up,and when that happens, the message will be returned to you.

Изпращащият мейл сървър ще направи няколко опита да изпрати писмото до получателя, през определен интервал от време. При всеки неуспешен опит към подателя ще се върне съобщение с тема “Warning: message 1hgyyb-00Gcdi-R1 delayed 24/48/72 hours”. Изпращащият мейл сървър ще преустанови опитите си за изпращане на писмото при неуспешен опит до 72 часа.

SMTP статус кодове 5.x.x

SMTP статус кодовете за твърд отказ за доставяне започват с 5.x.x и най-честите причини за получаването им са:

  • имейл адресът не съществува (5.1.1);
  • домейнът в имейл адреса не съществува;
  • твърд отказ от доставяне от получаващия мейл сървър.

При твърд отказ от доставяне изпращащият мейл сървър няма да прави опити отново да изпрати писмото до дадения получател. При този отказ от доставяне ще е нужна проверка и намеса от човешка страна, за се установи кое не е наред с писмото и параметрите му.

5.1.1 - Несъществуващ имейл адрес

Този код означава, че имейл адресът е изписан от подателя грешно или такъв имейл адрес не съществува при получаващия мейл сървър.

Примерно съобщение с код 5.1.1 за неуспешно доставяне на писмо с несъществуващ имейл адрес:

From: Mail Delivery System Mailer-Daemon@goodexample.eu
Subject: Mail delivery failed: returning message to sender
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:

emailnotvalid@abv.bg
host pmx.abv.bg [194.153.145.203]
SMTP error from remote mail server after RCPT TO:emailnotvalid@abv.bg:
550 5.1.1 emailnotvalid@abv.bg: Recipient address rejected:

User unknown in virtual mailbox table

Вижте още статус кодове в статията Често срещани SMTP статус кодове и съобщения при недоставена поща | Help

начало ⇑

Обновена: 30.07.2019

Беше ли Ви полезна тази статия?

Вижте още