Jeżeli po wysłaniu wiadomości e-mail otrzymałeś wiadomość zatytułowaną Delivery Status Notification (Failure), oznacza to, że system pocztowy nie zdołał dostarczyć Twojego maila do wskazanego odbiorcy i zakończył dalsze próby. Sam tekst „Delivery Status Notification (Failure)” nie mówi jeszcze, dlaczego wiadomość została odrzucona. Dokładną przyczynę znajdziesz dopiero w treści zwrotki – zazwyczaj w postaci kodu SMTP, rozszerzonego statusu i krótkiego komunikatu, np. 550 5.1.1 User unknown albo 550 5.7.1 Message rejected.
W Gmailu taka wiadomość najczęściej przychodzi od Mail Delivery Subsystem, czyli automatycznego systemu obsługującego komunikaty o stanie dostarczenia. Nie oznacza to awarii Gmaila ani problemu z samym programem pocztowym. To informacja o tym, co stało się z konkretną wysłaną wiadomością. Jeżeli miałbym Ci coś doradzić już na początku, to przede wszystkim nie wysyłaj od razu tego samego maila ponownie. Najpierw otwórz zwrotkę i sprawdź właściwy kod błędu.
- Co oznacza Delivery Status Notification?
- Delivery Status Notification (Failure) w Gmailu
- Czym różni się Failure od Delay?
- Co oznacza Failure?
- Gdzie znaleźć właściwy błąd?
- Co oznacza Action: failed?
- Czy problem leży po mojej stronie?
- DSN a Mailer-Daemon
- Delivery Status Notification a NDR
- Czy wiadomość została dostarczona czy przeczytana?
- Co zrobić po otrzymaniu Delivery Status Notification (Failure)?
Co oznacza Delivery Status Notification?
Skrót DSN oznacza Delivery Status Notification, czyli powiadomienie o stanie dostarczenia wiadomości. Jest to standardowy mechanizm wykorzystywany przez serwery pocztowe do przekazywania informacji o wyniku próby dostarczenia maila.
DSN nie oznacza wyłącznie błędu. System może poinformować o kilku różnych stanach:
failed– dostarczenie zakończyło się niepowodzeniem,delayed– wiadomość nie została jeszcze dostarczona, ale system nadal próbuje,delivered– wiadomość została dostarczona,relayed– wiadomość została przekazana dalej do innego systemu,expanded– adres został rozwinięty, np. do kilku odbiorców.
DlategoDSN (Failure) jest tylko jednym z rodzajów raportu DSN – konkretnie takim, który informuje o nieudanym dostarczeniu.
Jeżeli interesuje Cię sam mechanizm dostarczania wiadomości, polecam również poradnik Czy wiadomość e-mail została dostarczona?. Tam koncentruję się już nie na samym komunikacie DSN, ale na tym, jak rozumieć moment dostarczenia maila.
Delivery Status Notification (Failure) w Gmailu
Jeżeli korzystasz z Gmaila, zwrotka najczęściej przychodzi od:
Mail Delivery Subsystem
mailer-daemon@googlemail.com
Temat wiadomości może wyglądać tak:
Delivery Status Notification (Failure)
Google informuje w ten sposób, że wysłana przez Ciebie wiadomość nie została dostarczona. Nie analizowałbym jednak samego tytułu wiadomości, ponieważ nie mówi on jeszcze niczego o przyczynie. Z mojego doświadczenia wynika, że właśnie tutaj użytkownicy najczęściej popełniają błąd: widzą „Failure”, zakładają, że Gmail nie działa, i ponownie wysyłają dokładnie tę samą wiadomość.
Tymczasem właściwa informacja znajduje się kilka linijek niżej – przy kodzie SMTP lub polu Diagnostic-Code.
Czym różni się Delivery Status Notification (Failure) od Delay?
To bardzo ważna różnica. Jeżeli otrzymasz komunikat:
Delivery Status Notification (Delay)
wiadomość nie została jeszcze definitywnie odrzucona. Serwer informuje, że wystąpił problem tymczasowy i będzie próbował ponownie.
W treści możesz zobaczyć np.:
There was a temporary problem delivering your message.
Znaczenie:
Wystąpił tymczasowy problem z dostarczeniem wiadomości.
Jeżeli dalsze próby również się nie powiodą, kolejny raport może już mieć status:
Delivery Status Notification (Failure)
Wtedy system zakończył dalsze dostarczanie. Dlatego przy Delay sugeruję przede wszystkim zaczekać, natomiast przy Failure od razu sprawdzić pełny kod diagnostyczny.
Co oznacza Failure?
Słowo Failure oznacza, że próba dostarczenia zakończyła się niepowodzeniem. Nie określa jednak konkretnej przyczyny.
Problem może dotyczyć między innymi:
- nieistniejącego adresu odbiorcy,
- pełnej skrzynki,
- problemu z domeną,
- blokady antyspamowej,
- konfiguracji SPF, DKIM lub DMARC,
- niedozwolonego załącznika,
- przekroczenia limitu,
- odrzucenia wiadomości przez politykę serwera,
- problemu tymczasowego, który po kolejnych próbach zakończył się trwałym niepowodzeniem.
Dlatego sam temat wiadomości nie wystarczy do diagnozy. Jeśli chcesz sprawdzić konkretne błędy, przygotowałem osobny poradnik Mailer-Daemon – błędy SMTP 421, 450, 451, 452, 550, 552, 553 i 554.
Gdzie znaleźć właściwy błąd?
W treści DSN szukaj przede wszystkim pól:
Final-Recipient
Action
Status
Remote-MTA
Diagnostic-Code
Przykładowa zwrotka może wyglądać tak:
Final-Recipient: rfc822; odbiorca@example.com
Action: failed
Status: 5.1.1
Diagnostic-Code: smtp; 550 5.1.1 User unknown
Ja osobiście zaczynam analizę właśnie od ostatniej linijki. W tym przykładzie właściwym problemem nie jest ogólne „Delivery Status Notification Failure”, tylko:
550 5.1.1 User unknown
czyli brak wskazanego użytkownika lub nieprawidłowy adres docelowej skrzynki.
Jeżeli w zwrotce widzisz inne kody, np. 552, 554 albo 5.7.1, nie interpretuj ich na podstawie tego przykładu. Każdy z nich prowadzi do innego rodzaju diagnostyki.
Co oznacza Action: failed?
Pole:
Action: failed
oznacza, że serwer zakończył próbę dostarczenia wiadomości do danego odbiorcy.
Nie jest to zwykłe chwilowe opóźnienie. W przypadku failed dalsze próby dla tej operacji zostały zakończone.
Dla porównania:
Action: delayed
oznacza, że wiadomość nadal pozostaje w kolejce i system podejmie kolejne próby.
To jeden z powodów, dla których nie polecam wysyłać kolejnej kopii wiadomości natychmiast po każdej zwrotce. Przy delayed możesz tylko spowodować, że po przywróceniu działania poczty odbiorca otrzyma kilka takich samych maili.
Czy DSN(Failure) oznacza problem po mojej stronie?
Sam tytuł Delivery Status Notification (Failure) nie pozwala tego określić. Dopiero kod błędu mówi, gdzie rozpocząć diagnostykę.
Przykładowo:
550 5.1.1 User unknown
wskazuje problem z adresem odbiorcy.
552 5.2.2 Mailbox full
informuje o pełnej skrzynce odbiorcy.
550 5.7.26
prowadzi natomiast w kierunku uwierzytelniania wiadomości i konfiguracji po stronie domeny nadawcy.
Zwróć więc uwagę, że dwa komunikaty Delivery Status Notification (Failure) mogą dotyczyć kompletnie innych problemów. Dlatego nie ma jednej uniwersalnej instrukcji „napraw DSN Failure”. Najpierw trzeba zidentyfikować kod.
Delivery Status Notification a Mailer-Daemon – jaka jest różnica?
Te dwa pojęcia są ze sobą mocno związane, ale nie oznaczają dokładnie tego samego.
Mailer-Daemon to automatyczny mechanizm systemu pocztowego odpowiedzialny między innymi za generowanie komunikatów związanych z dostarczaniem wiadomości. Delivery Status Notification jest natomiast samym raportem o stanie dostarczenia.
W dużym uproszczeniu można więc powiedzieć:
Mailer-Daemon może wysłać do Ciebie raport DSN.
Jeżeli chcesz dokładniej zrozumieć, skąd bierze się taka zwrotka i dlaczego w ogóle istnieje, przeczytaj Co to jest Mailer-Daemon i jak działa?.
Delivery Status Notification a NDR – czy to jest to samo?
Niezupełnie. Microsoft bardzo często używa pojęcia NDR – Non-Delivery Report, czyli raport niedostarczenia. NDR jest rodzajem raportu dotyczącego sytuacji, w której wiadomość nie została dostarczona.
Dlatego w Gmailu częściej zobaczysz:
Delivery Status Notification (Failure)
a w środowisku Microsoft komunikat może wyglądać np. tak:
Undeliverable
Your message couldn't be delivered
Technicznie oba komunikaty prowadzą do podobnego pytania: dlaczego serwer nie dostarczył wiadomości?
Jeżeli zamiast zwrotki widzisz natomiast błąd bezpośrednio w Outlooku, np. 0x800CCC0E albo 0x800CCC0F, to jest już inna kategoria problemu. Opisałem ją w poradniku Błędy Outlook 0x800CCC0E, 0x800CCC0F i inne – co oznaczają?.
Czy Delivery Status Notification (Failure) oznacza, że wiadomość nie została przeczytana?
Nie. To komunikat dotyczący wcześniejszego etapu. Wiadomość nie została prawidłowo dostarczona do wskazanego odbiorcy.
Dostarczenie i przeczytanie to dwie różne rzeczy. Wiadomość może zostać poprawnie dostarczona na serwer odbiorcy, a użytkownik nigdy jej nie otworzy. Z drugiej strony przy Delivery Status Notification (Failure) problem wystąpił jeszcze wcześniej.
Jeżeli interesuje Cię różnica między dostarczeniem i odczytaniem, zobacz Czy wiadomość e-mail została dostarczona? oraz, dla Gmaila, jak sprawdzić, czy mail został odczytany w Gmail.
Co zrobić po otrzymaniu Delivery Status Notification (Failure)?
Ja zrobiłbym to w bardzo konkretnej kolejności. Nie zmieniałbym hasła, nie usuwał konta z programu pocztowego i nie wysyłał wiadomości pięć razy pod rząd. Najpierw trzeba ustalić, co dokładnie powiedział serwer.
- Otwórz wiadomość Delivery Status Notification.
- Znajdź pole
Action. - Sprawdź
Status. - Odszukaj
Diagnostic-Code. - Skopiuj cały kod razem z tekstem błędu.
- Dopiero wtedy dobierz rozwiązanie.
Jeżeli adres nie istnieje – popraw go. Jeżeli skrzynka odbiorcy jest pełna – skontaktuj się z nim innym kanałem. Jeżeli błąd dotyczy SPF, DKIM, DMARC albo reputacji nadawcy – sprawdź konfigurację domeny lub zgłoś problem administratorowi poczty. Jeżeli widzisz kod z grupy 4xx albo status delayed, sprawdź, czy serwer nadal nie podejmuje kolejnych prób.
Jeżeli nie wiesz, jak zinterpretować konkretny numer, wróć do mojego zestawienia błędów Mailer-Daemon i SMTP. Jeżeli natomiast problem występuje bezpośrednio w Outlooku, Thunderbirdzie lub innym kliencie jeszcze przed wysłaniem wiadomości, zajrzyj do poradnika Najczęstsze błędy programów pocztowych – Outlook, Thunderbird i inne.
Podsumowując: Delivery Status Notification (Failure) nie jest jednym konkretnym błędem. To informacja, że dostarczenie się nie udało. Właściwy problem znajduje się dopiero wewnątrz raportu DSN. I właśnie ten kod – nie sam tytuł „Failure” – powinien być punktem wyjścia do dalszej diagnostyki.
„`