Jak czytać nagłówki maila i diagnozować problemy z dostarczaniem
Ostatnia aktualizacja: 26:10:2026
Czym są nagłówki i którym można ufać
Każdy e-mail zaczyna się od bloku nagłówków, który poprzedza treść. Program pocztowy pokazuje cztery czy pięć z nich (Od, Do, Temat, Data), a resztę ukrywa – i właśnie tam są przydatne informacje. Nagłówki pochodzą z trzech miejsc:
- Program nadawcy zapisuje pola wiadomości zdefiniowane w RFC 5322:
From,To,Subject,Date,Message-ID, a często teżList-UnsubscribeiDKIM-Signature. - Każdy serwer, przez który przechodzi wiadomość, dopisuje na górze wiersz
Received(RFC 5321). Serwer, który ostatecznie umieszcza ją w skrzynce, dodajeReturn-Pathz adresem nadawcy z koperty. - Dostawca odbiorcy dopisuje swoje werdykty:
Authentication-Results(RFC 8601), czasemReceived-SPF, nagłówki ARC przy przekazanej poczcie i własne nagłówki antyspamowe.
Nagłówki to zwykły tekst, więc przed wysłaniem każdy może wpisać w nie cokolwiek. Zasada, która chroni przed wprowadzeniem w błąd: ufaj nagłówkom dodanym przez serwery Twojego dostawcy, a wszystko pod nimi traktuj jako deklarację nadawcy. Fałszywy wiersz Received albo podrobione „spf=pass” na dole wiadomości phishingowej niczego nie dowodzą; dowodzi wiersz Authentication-Results, który Twój dostawca dopisał na górze.
Jak wyświetlić pełne nagłówki
| Program | Gdzie ich szukać |
|---|---|
| Gmail (przeglądarka) | Otwórz wiadomość, kliknij menu Więcej (trzy kropki) obok „Odpowiedz” i wybierz „Pokaż oryginał”. Na górze Gmail podaje wyniki SPF, DKIM i DMARC. |
| Outlook dla Windows (klasyczny) | Otwórz wiadomość w osobnym oknie (dwukrotnym kliknięciem), a potem Plik → Właściwości; nagłówki są w polu „Nagłówki internetowe”. |
| Nowy Outlook dla Windows, Outlook w przeglądarce, Outlook.com | W wiadomości wybierz Więcej akcji → Widok → Wyświetl szczegóły wiadomości. |
| Apple Mail (Mac) | Zaznacz wiadomość i wybierz Widok → Wiadomość → Wszystkie nagłówki (albo surowe źródło, żeby zobaczyć całą wiadomość). |
| Thunderbird | Widok → Nagłówki → Wszystkie pokazuje każdy nagłówek nad wiadomością; Widok → Źródło wiadomości (Ctrl+U) pokazuje surową wiadomość. |
Nazwy menu zależą od wersji i języka programu – w angielskiej wersji szukaj „Show original”, „Internet headers”, „View message details”, „All Headers” lub „Message Source”. Aplikacje pocztowe na telefonach zwykle nie pokazują pełnych nagłówków, więc otwórz tę samą wiadomość w przeglądarce albo na komputerze. Prosząc kogoś o pomoc, skopiuj cały blok nagłówków jako tekst – zrzut ekranu ucina wiersze i nie da się go wkleić do analizatora nagłówków.
Uwaga dla użytkowników AnyMail: AnyMail przechowuje odebraną pocztę jako przetworzone wiadomości, a nie oryginalne surowe pliki, więc oryginalne nagłówki wiadomości, którą otrzymałeś, nie są zachowywane. Rzadko ma to znaczenie, bo zwykle pytanie brzmi, jak Twoja wychodząca poczta dociera gdzie indziej: wyślij wiadomość testową na adres w Gmailu lub Outlook.com i przeczytaj nagłówki tam – dostawca odbiorcy zapisał dokładnie to, co zobaczył.
Przykład z objaśnieniem
Poniżej skrócony blok nagłówków wiadomości od anna@firma.pl, wysłanej przez dostawcę out.mailhost.example i odebranej przez mx1.example.net. Prawdziwe nagłówki są dłuższe i mają nieco inną kolejność, ale najważniejsze wiersze wyglądają tak:
Return-Path: <anna@firma.pl>
Delivered-To: jan@example.net
Received: from out.mailhost.example (out.mailhost.example [192.0.2.25])
by mx1.example.net with ESMTPS id 4F2A9C0123
for <jan@example.net>; Mon, 26 Oct 2026 10:15:04 +0100
Authentication-Results: mx1.example.net;
spf=pass smtp.mailfrom=anna@firma.pl;
dkim=pass header.d=firma.pl header.s=s1;
dmarc=pass header.from=firma.pl
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=firma.pl; s=s1;
h=from:to:subject:date:message-id; bh=2jUSOH9N…; b=dzdVyOfA…
Message-ID: <8c1f02a4-6e1b-4d1e-9a51-3f0c2e7d9b10@firma.pl>
Date: Mon, 26 Oct 2026 10:15:02 +0100
From: Anna Nowak <anna@firma.pl>
To: jan@example.net
Subject: Faktura 1042
List-Unsubscribe: <https://out.mailhost.example/unsubscribe/…>
List-Unsubscribe-Post: List-Unsubscribe=One-ClickŁańcuch Received: czytaj od dołu do góry
Każdy serwer dopisuje swój wiersz Received na górze, więc najnowszy jest pierwszy, a pierwszy etap trasy – ostatni. Żeby prześledzić drogę wiadomości, zacznij od najniższego wiersza Received i idź w górę. Każdy wiersz mówi, od jakiego serwera przyszła wiadomość (from – z nazwą, którą się przedstawił, nazwą z odwrotnego DNS i adresem IP w nawiasie), który serwer ją przyjął (by), jakim protokołem (with; ESMTPS oznacza SMTP przez TLS) i kiedy.
- Szukanie opóźnienia. Porównaj znaczniki czasu w kolejnych wierszach. Kilka minut czy godzin przerwy między dwoma etapami pokazuje dokładnie, który serwer przetrzymał wiadomość – często to greylisting, zapchana kolejka albo ponowna próba po błędzie tymczasowym. Uważaj na strefy czasowe:
+0100i-0700dzieli kilka godzin, nawet jeśli same godziny wyglądają podobnie. - Szukanie prawdziwego serwera nadawcy. Wiarygodny jest ten etap, w którym serwer Twojego dostawcy (pierwszy wiersz zapisany przez host, który rozpoznajesz jako swój) odnotował połączenie z zewnątrz. To z adresem IP z tego wiersza porównywano rekord SPF i to jego dotyczą czarne listy.
- Sprawdzanie TLS.
ESMTPSalbo wersja TLS i szyfr w wierszu oznaczają, że ten etap był szyfrowany; samoESMTPlubSMTP– że nie był.
Authentication-Results: werdykt
To najprzydatniejszy pojedynczy nagłówek, gdy poczta trafia do spamu. Serwer odbiorcy zapisuje w nim każdą kontrolę i jej wynik, poprzedzając je własną nazwą (tzw. authserv-id, powyżej mx1.example.net), dzięki czemu jego wyniki da się odróżnić od tego, co próbował podrzucić nadawca.
| Pole | Znaczenie | Na co patrzeć |
|---|---|---|
spf= | czy adres IP nadawcy jest dozwolony w rekordzie SPF domeny z koperty | smtp.mailfrom |
dkim= | czy podpis DKIM się zweryfikował – osobny wynik dla każdego podpisu | header.d / header.s |
dmarc= | czy SPF lub DKIM przeszedł dla domeny wyrównanej z adresem From | header.from |
arc= | przy przekazanej poczcie: czy da się zweryfikować łańcuch pośredników (RFC 8617) | tylko w części wiadomości |
spf=smtp.mailfromdkim=header.d / header.sdmarc=header.fromarc=Możliwe wyniki to pass, fail, softfail (SPF z ~all), neutral, none (brak rekordu albo podpisu), temperror (chwilowy błąd zapytania DNS) i permerror (błędny sam rekord – przy SPF często ponad 10 zapytań DNS albo dwa rekordy SPF). Niektórzy dostawcy dodają własne pola, np. compauth, lub kody przyczyn; te są specyficzne dla danego dostawcy.
dmarc=fail przy spf=pass i dkim=pass to nie sprzeczność: oba przeszły, ale dla domen innych niż ta w polu From – zwykle dla domeny usługi wysyłkowej. To problem z wyrównaniem, opisany niżej i w poradniku o DMARC.
DKIM-Signature: kto podpisał i jakim kluczem
Nagłówek DKIM-Signature to sam podpis (zob. DKIM – jak działa podpis). Przy diagnozowaniu najważniejsze są dwa znaczniki:
d=– domena podpisująca. Żeby DMARC przeszedł dzięki DKIM, musi to być Twoja domena (albo, przy wyrównaniu w trybie relaxed, domena z tej samej organizacji co adres From).s=– selektor. Dlas=s1; d=firma.plodbiorca pobiera klucz publiczny zs1._domainkey.firma.pl. Jeślidkim=failmówi, że nie znaleziono klucza, sprawdź dokładnie tę nazwę.
h= wymienia podpisane nagłówki, bh= to skrót treści, a b= – sam podpis. Gdy DKIM nie przechodzi z powodu niezgodnego skrótu treści, coś zmieniło wiadomość po podpisaniu: lista dyskusyjna dodająca stopkę, bramka bezpieczeństwa przepisująca linki albo przekierowanie. Wiadomość może mieć kilka podpisów – na przykład Twój i usługi wysyłkowej – a każdy dostaje osobny wynik.
Return-Path, From i wyrównanie
Return-Path pokazuje nadawcę z koperty, czyli adres MAIL FROM podany w trakcie rozmowy SMTP. Na niego trafiają zwroty (bounce) i jego domenę sprawdza SPF. From to adres, który widzą ludzie. Często się różnią: wiele usług wysyłkowych używa w kopercie własnej domeny do obsługi zwrotów, a w From pokazuje Twoją.
DMARC łączy oba adresy. Przechodzi tylko wtedy, gdy SPF przeszedł dla domeny z Return-Path zgodnej z domeną z From albo DKIM przeszedł z d= zgodnym z tą domeną. W przykładzie powyżej wszystko się zgadza: Return-Path, From i d= to firma.pl. W AnyMail to wyrównanie jest wbudowane: poczta wychodząca używa Twojego własnego adresu jako nadawcy z koperty i jest podpisywana DKIM Twoją domeną.
Message-ID: odcisk palca wiadomości
Message-ID to unikalny w skali świata identyfikator nadawany przez program nadawcy, zapisany jak adres w nawiasach ostrych. Odwołują się do niego odpowiedzi (In-Reply-To i References) – tak programy pocztowe grupują konwersacje – i to najlepszy sposób, żeby znaleźć konkretną wiadomość w logach: podaj dostawcy Message-ID zamiast tematu i godziny. Cytują go też raporty o niedostarczeniu – dzięki temu AnyMail łączy zwrot, który przychodzi później, z wiadomością, której dotyczy. Brak Message-ID albo wartość niewyglądająca jak <coś@domena> często zdradza źle skonfigurowany skrypt.
List-Unsubscribe
List-Unsubscribe (RFC 2369) daje programom pocztowym link lub adres do wypisania się, a List-Unsubscribe-Post: List-Unsubscribe=One-Click (RFC 8058) mówi, że link działa po jednym żądaniu POST, bez strony z potwierdzeniem. Wymagania Gmaila i Yahoo wobec nadawców masowych każą obsługiwać wypisanie jednym kliknięciem w wiadomościach marketingowych i subskrypcyjnych. Jeśli Gmail nie proponuje opcji „Anuluj subskrypcję” dla Twojego newslettera, najpierw sprawdź, czy oba nagłówki są obecne i czy link używa HTTPS. AnyMail dodaje oba nagłówki, z działającym linkiem do wypisania jednym kliknięciem, do każdej wiadomości dostarczanej na adresy spoza AnyMail.
Szybka diagnoza
| Objaw | Sprawdź | Najczęstsza przyczyna |
|---|---|---|
| Ląduje w spamie | Authentication-Results | SPF/DKIM nie przechodzą albo nie są wyrównane z From; zob. poradnik o spamie |
| Doszła po kilku godzinach | Received | przerwa między dwoma etapami: greylisting, ponowienia albo kolejka |
dkim=fail | DKIM-Signature | brak klucza pod selektorem s= albo treść zmieniona po drodze |
spf=fail / softfail | Return-Path / Received | adresu IP nadawcy nie ma w rekordzie SPF domeny z koperty |
dmarc=fail | header.from / header.d / smtp.mailfrom | domeny, które przeszły kontrolę, nie pasują do domeny z From |
| Odpowiedzi nie łączą się w wątek | Message-ID / In-Reply-To | brak lub przepisany Message-ID |
Authentication-ResultsReceiveddkim=failDKIM-Signaturespf=fail / softfailReturn-Path / Receiveddmarc=failheader.from / header.d / smtp.mailfromMessage-ID / In-Reply-ToNagłówki mówią, co stało się z jedną wiadomością. Żeby sprawdzić rekordy domeny, zanim cokolwiek wyślesz, użyj narzędzia do sprawdzania domeny, a szerszy obraz tego, dlaczego poczta jest filtrowana, znajdziesz w poradniku dlaczego maile trafiają do spamu.
Jak bezpiecznie udostępniać nagłówki
Nagłówki zawierają adresy e-mail, adresy IP, a czasem wewnętrzne nazwy serwerów, ale nigdy Twojego hasła. Zanim opublikujesz je na forum, zamień adresy na przykładowe; wysyłając je do pomocy technicznej dostawcy, nie zmieniaj ich – poprawione nagłówki znacznie trudniej przeanalizować.
Niech AnyMail zajmie się tymi rekordami za Ciebie
AnyMail generuje rekordy MX, SPF, DKIM i DMARC dla Twojej domeny, automatycznie sprawdza każdy z nich i wskazuje, który trzeba poprawić – a potem utrzymuje Twoje skrzynki. Usługa działa z Polski, dane przechowujemy w UE.