Wklej pełne źródło listu - nagłówki i treść - i zobacz go w rozbiciu: każdy nagłówek, strukturę MIME, kodowanie transferu i charset każdej części, zdekodowaną treść text/HTML oraz wszystkie załączniki. Wszystko działa w Twojej przeglądarce; nic nie jest wysyłane.
Każdy list, który otrzymujesz, jest w istocie zwykłym dokumentem tekstowym o ścisłej strukturze zdefiniowanej przez MIME (Multipurpose Internet Mail Extensions) oraz starszy format wiadomości RFC 5322. Gdy otwierasz “surowe źródło” albo zapisany plik .eml, ta struktura staje się widoczna: blok nagłówków, pusty wiersz, a następnie treść. Ten dekoder rozkłada dowolną wklejoną wiadomość na te części — nagłówki, drzewo MIME, kodowanie transferu i charset każdej części, zdekodowany text/HTML oraz każdy załącznik — w całości w Twojej przeglądarce. Nic nie jest wysyłane na żaden serwer; przetwarzanie odbywa się na Twoim własnym komputerze.
Wiadomość składa się z dwóch sekcji rozdzielonych pierwszym pustym wierszem:
Header-Name: header value Another-Header: another value (a folded continuation line) <blank line> The body starts here…
Dwie rzeczy sprawiają kłopot przy czytaniu surowego źródła:
=?charset?B?…?= (Base64) albo =?charset?Q?…?= (wariant quoted-printable). Na przykład =?UTF-8?Q?caf=C3=A9?= dekoduje się do café. Dekoder powyżej pokazuje czytelną wartość; wartość surowa to to, co faktycznie wędruje po sieci.To zmienne, które zobaczysz u góry niemal każdej wiadomości. Nie wszystkie są zawsze obecne.
| Nagłówek | Co oznacza |
|---|---|
From | Autor pokazany czytelnikowi — nazwa wyświetlana i adres, np. Anna <anna@example.com>. To właśnie wyświetla Twój klient pocztowy; to nie jest dowód na to, kto naprawdę wysłał list (patrz SPF/DKIM poniżej). |
To, Cc | Główni odbiorcy oraz kopia. Nagłówki czysto informacyjne — rzeczywistą dostawą steruje koperta SMTP, a nie one. |
Bcc | Ukryta kopia. Zwykle usuwana przed dostarczeniem, więc rzadko widzisz ją w odebranej poczcie. |
Reply-To | Dokąd mają trafiać odpowiedzi, jeśli różni się to od From (np. nadawca “no-reply” kierujący odpowiedzi do wsparcia). |
Return-Path | Adres koperty (adres “MAIL FROM”), pod który wysyłane są zwroty (bounce). Dodawany przez serwer odbierający i często różni się od From. |
Sender | Rzeczywisty agent, który wysłał wiadomość, gdy nie jest nim autor (listy mailingowe, “w imieniu”). |
Message-ID | Globalnie unikalny identyfikator tej wiadomości, np. <a1b2c3@example.com>. Używany do wątkowania i usuwania duplikatów. |
| Nagłówek | Co oznacza |
|---|---|
Subject | Wiersz tematu. Często encoded-word, gdy zawiera znaki spoza ASCII. |
Date | Kiedy autor wysłał wiadomość, wraz z przesunięciem strefy czasowej, np. Wed, 9 Jul 2026 10:15:00 +0000. |
In-Reply-To | Message-ID, na który odpowiada ta wiadomość — pozwala klientom budować wątki rozmów. |
References | Łańcuch wcześniejszych Message-ID w wątku. |
| Nagłówek | Co oznacza |
|---|---|
Received | Wiersz śladu dodawany przez każdy serwer pocztowy, przez który przeszła wiadomość, najnowszy u góry. Czytając je od dołu do góry, widzisz ścieżkę dostarczenia i znaczniki czasu. |
DKIM-Signature | Podpis kryptograficzny, który pozwala odbiorcy potwierdzić, że wiadomość rzeczywiście została wysłana przez domenę i nie została zmieniona w drodze. |
Authentication-Results | Werdykt serwera odbierającego dotyczący kontroli SPF, DKIM i DMARC (pass/fail). Szybki sposób, aby ocenić, czy polu “From” można zaufać. |
Received-SPF | Czy wysyłający adres IP jest uprawniony do wysyłania poczty dla domeny koperty. |
List-Unsubscribe | Dla poczty masowej/newsletterów: adres lub URL, którego klient używa do wypisania się jednym kliknięciem. |
Tych kilka nagłówków steruje całą strukturą treści. To zmienne, które ten dekoder interesują najbardziej.
| Zmienna | Co robi |
|---|---|
MIME-Version: 1.0 | Deklaruje, że wiadomość używa MIME. Praktycznie zawsze 1.0. |
Content-Type | Najważniejsza pojedyncza zmienna: typ mediów danej części (text/plain, text/html, image/png, application/pdf, multipart/*…). Niesie parametry po średnikach. |
charset | Parametr tekstowego Content-Type: kodowanie znaków tekstu, np. charset="UTF-8". Potrzebne, aby zamienić bajty z powrotem na właściwe litery. |
boundary | Parametr typu multipart: unikalny ciąg-znacznik. Każda część zaczyna się od --boundary, a ostatnia kończy się na --boundary--. |
Content-Transfer-Encoding | Jak bajty części zostały spakowane, aby przetrwały jako 7-bitowy tekst w sieci (patrz tabela poniżej). |
Content-Disposition | inline (pokaż w wiadomości) albo attachment (zaoferuj jako plik). Zwykle niesie parametr filename. |
name / filename | Proponowana nazwa pliku załącznika, odpowiednio w Content-Type i Content-Disposition. |
Content-ID | Identyfikator części inline (np. obrazu), aby treść HTML mogła odwołać się do niej przez cid:. |
multipart/alternative — ta sama wiadomość w dwóch formach: zapasowa wersja text/plain i wersja text/html. Klient pokazuje najbogatszą, jaką potrafi.multipart/mixed — treść plus załączniki zebrane razem.multipart/related — część HTML wraz z osadzonymi (inline) obrazami, do których odwołuje się przez Content-ID.Zagnieżdżają się one w sobie: rzeczywista wiadomość to często multipart/mixed zawierające multipart/alternative (tekst + HTML) obok załącznika PDF. Dekoder pokazuje to jako ponumerowane drzewo (1, 1.1, 1.2…).
| Wartość | Znaczenie |
|---|---|
7bit | Zwykły ASCII, nic nie zmienione. Wartość domyślna, gdy nie podano kodowania. |
8bit | Surowe bajty powyżej 127 używane bezpośrednio (wymaga kanału 8-bit-clean). |
binary | Dowolne bajty, bez ograniczeń długości wiersza — rzadkość w normalnej poczcie. |
quoted-printable | Przeważnie czytelny tekst, w którym bajty spoza ASCII stają się =XX w hex (a = na końcu wiersza to miękki podział). Dobre dla tekstu w większości angielskiego z kilkoma znakami akcentowanymi. |
base64 | Dowolne bajty przekodowane na bezpieczny 64-znakowy alfabet, ~33% większe. Używane dla obrazów, plików PDF i innych binarnych załączników. |
Dekoder odwraca to kodowanie, które zostało użyte, a następnie stosuje charset danej części, aby tekst wrócił czytelny, a załączniki wróciły jako ich oryginalne bajty (które możesz pobrać).
Naciśnij “Wczytaj przykład” powyżej, aby wczytać małą wiadomość i zobaczyć ją zdekodowaną. Jej szkielet wygląda tak:
Subject: =?UTF-8?Q?Meeting_notes_=E2=80=93_caf=C3=A9?= ← encoded-word MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="OUTER" --OUTER Content-Type: multipart/alternative; boundary="INNER" --INNER Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable ← część tekstowa ... --INNER Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: base64 ← alternatywa HTML ... --INNER-- --OUTER Content-Type: text/plain; name="notes.txt" Content-Disposition: attachment; filename="notes.txt" Content-Transfer-Encoding: base64 ← załącznik ... --OUTER--
Jak to czytać: zewnętrzny typ to multipart/mixed, więc treść to “zawartość + załącznik”. Jego pierwsze dziecko to multipart/alternative zawierające wersję tekstową i HTML tej samej notatki; drugie dziecko to załącznik notes.txt. Subject to encoded-word, który dekoduje się do “Meeting notes – café”.
Wszystko pozostaje na Twoim urządzeniu. To narzędzie przetwarza wiadomość za pomocą JavaScriptu w Twojej przeglądarce — surowy list nigdy nie jest wysyłany ani do nas, ani do nikogo innego, i nic nie jest przechowywane. Możesz bezpiecznie przeglądać prywatne lub wrażliwe wiadomości.
Gdy już wiesz, z którego serwera przyszła wiadomość, możesz kopać głębiej: sprawdź Wyszukiwanie MX domeny, przeczytaj, jak odpowiada serwer, w poradniku Sprawdzanie SMTP przez telnet, albo sprawdź, czy adres jest dostarczalny, za pomocą Sprawdzanie email.