Przejdź do treści
correct.email
Dostarczalność

Kody odrzuceń poczty: kody SMTP i rozszerzone kody statusu

Jak czytać odbicia: kody odpowiedzi SMTP i rozszerzone kody statusu, 4xx a 5xx, co znaczą 550 5.1.1, 5.7.26 i 421 4.7.0 oraz co robić w każdym przypadku.

Autor: Exmoor Software7 min czytania

Odbicie (zwrot, NDR) to odmowa serwera odbiorcy, która wraca do Ciebie. Większość odrzuceń zawiera dwa kody i zdanie wyjaśnienia, tak jak ten komunikat Gmaila:

550 5.1.1 The email account that you tried to reach does not exist.

550 to kod odpowiedzi SMTP, 5.1.1 to rozszerzony kod statusu, a reszta to wyjaśnienie dostawcy odbiorcy. Przeczytaj wszystkie trzy części, a tekst — najuważniej.

Dwa kody z dwóch standardów

Kod odpowiedzi SMTP (RFC 5321, sekcja 4.2) ma trzy cyfry. Pierwsza decyduje o tym, co dzieje się dalej:

Pierwsza cyfraZnaczenieCo robi serwer nadawcy
2SukcesKoniec
3Odpowiedź pośrednia, np. 354 po DATAKontynuuje dialog
4Błąd przejściowyZatrzymuje wiadomość i ponawia później
5Błąd trwałyNie powtarza żądania; odsyła odbicie

Druga cyfra to ogólna kategoria (x0z składnia, x2z połączenie, x5z system pocztowy), trzecia — dokładniejsze rozróżnienie. RFC 5321 zaleca klientom, by w miarę możliwości opierali się na pierwszej cyfrze.

Rozszerzony kod statusu (RFC 3463) ma postać klasa.temat.szczegół. Serwery, które ogłaszają rozszerzenie ENHANCEDSTATUSCODES (RFC 2034), umieszczają go zaraz po kodzie odpowiedzi, a jego klasa musi zgadzać się z pierwszą cyfrą: odpowiedź 5xx niesie kod 5.x.x. Temat mówi, gdzie leży problem:

TematObszarPrzykład
x.0.xInny lub nieokreślony5.0.0
x.1.xAdresowanie5.1.1 błędny adres skrzynki docelowej
x.2.xSkrzynka4.2.2 skrzynka pełna
x.3.xSystem pocztowy5.3.4 wiadomość za duża dla systemu
x.4.xSieć i routing4.4.7 upłynął czas doręczenia
x.5.xProtokół doręczania5.5.2 błąd składni
x.6.xTreść lub format wiadomości5.6.0 inny lub nieokreślony błąd formatu
x.7.xBezpieczeństwo lub polityka5.7.1 doręczenie niedozwolone

Rejestr kodów prowadzi IANA; kolejne RFC dodawały nowe, na przykład kody uwierzytelniania z RFC 7372.

Tekst ma dowolną formę i to w nim dostawcy tłumaczą, o co chodzi. Jeden kod może obejmować bardzo różne sytuacje: Gmail używa 550 5.7.1 z kilkunastu powodów. Dostawcy używają też niektórych numerów inaczej niż rejestr: w Gmailu 5.7.27 znaczy „SPF nie przeszedł”, a rejestr definiuje X.7.27 jako „adres nadawcy ma null MX” (RFC 7505). Traktuj numer jako kategorię, a tekst jako diagnozę.

4xx czy 5xx: ponowić czy coś zmienić

4xx oznacza błąd przejściowy. Twój serwer poczty zatrzymuje wiadomość i próbuje ponownie; RFC 5321 zaleca odstęp między próbami co najmniej 30 minut i rezygnację nie wcześniej niż po 4–5 dniach. W tym czasie możesz dostać powiadomienie o opóźnieniu (delayed). To nie jest odbicie, a RFC 3464 wprost zaleca, by oprogramowanie list nie usuwało z tego powodu subskrybentów.

Jeśli jeden dostawca odpowiada 4xx przez kilka dni, przyczyną jest zwykle reputacja, wolumen albo uwierzytelnianie. Gmail na przykład używa kodów 4.7.x do tymczasowego ograniczania przepustowości, a kodów 5.7.x do blokad. Zmniejsz tempo wysyłki i usuń przyczynę wskazaną w tekście — szybsze ponawianie tylko pogarsza sprawę.

5xx oznacza błąd trwały. Nie wysyłaj tej samej wiadomości ponownie bez zmian. RFC 5321 mówi, że klient nie powinien powtarzać dokładnie tego samego żądania, zasady Outlook.com zabraniają ponownego wysyłania po odpowiedzi 5xx, a Yahoo prosi, by nie ponawiać błędów 5xx. Najpierw zmień adres, swój DNS albo samą wiadomość.

Nawet 5xx może wynikać z chwilowego stanu, dlatego RFC 3464 zaleca usuwanie subskrybentów dopiero po utrzymujących się błędach, a nie po pojedynczym raporcie. Wyjątkiem, na który większość nadawców reaguje od razu, jest jednoznaczne „skrzynka nie istnieje” od dostawcy odbiorcy; Yahoo zaleca usuwanie takich adresów.

Najczęstsze kody i co z nimi zrobić

550 5.1.1 — skrzynka nie istnieje

RFC 3463: bad destination mailbox address, czyli część adresu przed @ jest nieprawidłowa. Gmail: „The email account that you tried to reach does not exist”. Exchange Online używa 5.1.1, a także 5.1.10 (recipient not found).

Co zrobić: sprawdź literówki — walidator składni e-mail wyłapuje typowe pomyłki w domenach — i przestań wysyłać na ten adres. Jeśli to adres w Twojej domenie, sprawdź, czy skrzynka lub alias istnieje. Jeśli błędna jest sama domena (5.1.2, bad destination system address), sprawdź jej rekordy MX wyszukiwaniem MX.

550 5.7.1 — doręczenie niedozwolone

RFC 3463: delivery not authorized, message refused, czyli skutek filtrowania na poziomie serwera lub odbiorcy. W praktyce to kod ogólny. Gmail zwraca go m.in. przy polityce ustawionej przez domenę odbiorcy, poczcie uznanej za „prawdopodobnie niechcianą”, bardzo niskiej reputacji adresu IP lub domeny nadawcy, braku albo zdublowaniu nagłówka From i braku Message-ID. Exchange Online używa go wobec nadawców, którzy nie mogą pisać do danej grupy, a także przy unable to relay i client was not authenticated.

Co zrobić: przeczytaj tekst. Polityka odbiorcy (Gmail dopisuje gcdp do błędów wynikających z reguł administratora Google Workspace) to sprawa dla administratora po stronie odbiorcy. Przy reputacji przejdź przez poradnik Dlaczego maile trafiają do spamu; błędy formatu wymagają poprawienia wiadomości.

5.7.26 i inne błędy uwierzytelniania

RFC 7372 definiuje X.7.26 jako multiple authentication checks failed, a obok niego X.7.23 (SPF validation failed) i X.7.25 (reverse DNS validation failed). Gmail odpowiada 550 5.7.26, gdy wiadomość jest nieuwierzytelniona (nie przeszedł ani SPF, ani DKIM), gdy rekord SPF domeny nadawcy z koperty kończy się na -all, a sprawdzenie się nie udaje, oraz gdy wiadomość odrzuca polityka DMARC domeny z From. 421 4.7.26 to wersja tymczasowa: Gmail ogranicza przepustowość dla nieuwierzytelnionej poczty.

Gmail ma też kody związane z wymaganiami dla nadawców: 5.7.27 (SPF nie przeszedł), 5.7.30 (DKIM nie przeszedł), 5.7.25 (brak rekordu PTR albo nazwa z PTR nie wskazuje z powrotem na ten adres IP) i 5.7.29 (brak TLS), każdy z tymczasowym odpowiednikiem 4.7.x: 4.7.27, 4.7.30 i 4.7.29, a przy sprawdzaniu PTR — 4.7.23. Exchange Online odpowiada 5.7.509, gdy domena nadawcy nie przechodzi DMARC i publikuje p=reject, a Outlook.com kodem 550 5.7.515 odrzuca pocztę nadawców masowych, którzy nie spełniają jego wymagań uwierzytelniania.

Co zrobić: wklej nagłówki wiadomości, która gdzieś dotarła, do analizatora nagłówków e-mail i obejrzyj Authentication-Results. Potem popraw SPF, DKIM albo zgodność domen w DMARC. Przy błędach PTR użyj narzędzia Odwrotny DNS (PTR).

421 4.7.0 — spróbuj później

RFC 5321: 421 service not available, closing transmission channel; RFC 3463: X.7.0 other or undefined security status. Gmail używa 421 4.7.0 m.in. przy bardzo niskiej reputacji adresu IP lub domeny nadawcy, podejrzanej treści lub linkach, braku rekordu PTR oraz gdy domena odbiorcy wymaga TLS („TLS required for RCPT domain”). Pokrewny kod 421 4.7.28 oznacza, że Gmail wykrył nietypowe natężenie poczty.

Co zrobić: pozwól serwerowi ponawiać próby. Jeśli kod się utrzymuje, zmniejsz wolumen, sprawdź PTR i TLS i zajrzyj do Google Postmaster Tools.

452 4.2.2 — skrzynka pełna

RFC 3463: X.2.2 mailbox full, pomyślany jako utrzymujący się błąd przejściowy; w RFC 5321 452 to insufficient system storage. Gmail: „The recipient's inbox is out of storage space”. Gdy pełna skrzynka jest dodatkowo nieaktywna, Gmail odpowiada 552 5.2.2.

Co zrobić: pozwól serwerowi ponawiać próby. Adres, który od tygodni jest pełny, jest w praktyce porzucony — przestań na niego wysyłać. Uwaga: RFC 5321 używa 452 także dla too many recipients (w Gmailu: 452 4.5.3) — wtedy Twój serwer powinien obsłużyć pozostałych odbiorców w kolejnej transakcji.

554 z kodem 5.7.x — transakcja nieudana

RFC 5321: 554 transaction failed (jako powitanie przy nowym połączeniu: „no SMTP service here”). Z kodem 5.7.x oznacza odrzucenie z powodów polityki. Yahoo używa kodów 553 i 554 przy problemach trwałych, m.in. przy nieprawidłowych adresach, nieudanych sprawdzeniach DMARC lub DKIM, treści, której nie przyjmuje, i adresie IP na liście Spamhaus. Gmail używa 554 5.7.0 przy „too many unauthenticated commands”.

Co zrobić: przeczytaj tekst. Wzmianka o liście blokad oznacza sprawdzenie wpisu i usunięcie jego przyczyny — Sprawdzanie IP na listach blokad pokaże publiczne listy, na których jest Twój adres IP; wzmianka o uwierzytelnianiu — kroki z sekcji o 5.7.26.

Jak czytać raport o niedoręczeniu (NDR)

Raport o niedoręczeniu to zwykle wiadomość multipart/report (RFC 6522) z częścią dla człowieka, częścią maszynową message/delivery-status (RFC 3464) i często z oryginalną wiadomością lub jej nagłówkami. Część maszynowa wygląda tak:

Reporting-MTA: dns; mail.example.net
Final-Recipient: rfc822; alice@example.org
Action: failed
Status: 5.1.1
Remote-MTA: dns; mx1.example.org
Diagnostic-Code: smtp; 550 5.1.1 mailbox does not exist
  1. Action: failed to odbicie; delayed znaczy, że Twój serwer wciąż ponawia próby.
  2. Kto odmówił: Reporting-MTA to serwer, który sporządził raport. Jeśli jest pole Remote-MTA, diagnoza pochodzi od tego zdalnego serwera; jeśli go brak, wystawił ją sam serwer raportujący — być może Twój własny serwer albo usługa wysyłkowa, zanim wiadomość w ogóle wyszła. Raporty Exchange Online pokazują to samo rozróżnienie jako Generating server i Remote server.
  3. Status i Diagnostic-Code: rozszerzony kod i faktyczna odpowiedź serwera. Diagnostic-Code to najdokładniejsza informacja w raporcie.
  4. Final-Recipient: adres, na który nie udało się doręczyć. Może się różnić od pierwotnego adresu odbiorcy, jeśli poczta była przekazywana dalej.

Odbicia wiadomości, które wcale nie pochodzą od Ciebie, oznaczają zwykle, że ktoś podał Twój adres jako nadawcę. Polityka DMARC quarantine lub reject (jak skonfigurować DMARC) ogranicza podszywanie się, które za nimi stoi.

Ściąga

WidziszZnaczenieCo zrobić
4xx / 4.x.x jednorazowoStan przejściowyNic; serwer ponowi próbę
4xx od jednego dostawcy przez kilka dniOgraniczanie przepustowości, reputacja lub uwierzytelnianieZmniejsz tempo; usuń przyczynę podaną w tekście
5.1.xProblem z adresemPopraw literówkę albo przestań wysyłać na ten adres
5.2.xProblem ze skrzynką (wyłączona, pełna)Przestań wysyłać na adresy, które stale zawodzą
5.4.xProblem z siecią lub routingiemSprawdź rekordy MX domeny odbiorcy
5.6.xTreść lub format wiadomościPopraw wiadomość
5.7.xBezpieczeństwo lub politykaPopraw uwierzytelnianie lub reputację albo skontaktuj się z administratorem odbiorcy

Nie wiesz, od czego zacząć? Kreator: dlaczego poczta nie dochodzi przeprowadzi Cię przez sprawdzenia krok po kroku.

Źródła