Dekoder MIME

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.

Wynik:
Wklej powyżej surowy list i naciśnij „Zdekoduj wiadomość”. Wskazówka: w większości klientów pocztowych użyj „Pokaż oryginał” / „Wyświetl źródło” albo zapisz wiadomość jako plik .eml, aby uzyskać surowy tekst.

Czym jest dekoder MIME i co oznaczają wszystkie te nagłówki?

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.

1. Ogólny kształt wiadomości

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…
  • Nagłówki opisują wiadomość: kto ją wysłał, kiedy, temat oraz — co kluczowe dla MIME — jak zakodowano i zbudowano treść.
  • Pusty wiersz to granica między nagłówkami a treścią. Pierwszy pusty wiersz kończy blok nagłówków.
  • Treść to wszystko, co następuje po nim. W nowoczesnej wiadomości treść zwykle nie jest zwykłym tekstem, lecz strukturą MIME złożoną z kilku części.

2. Jak zapisywane są nagłówki

Dwie rzeczy sprawiają kłopot przy czytaniu surowego źródła:

  • Zawijanie (folding). Długi nagłówek można rozbić na kilka wierszy; każdy wiersz kontynuacji zaczyna się od spacji lub tabulatora. Przy odczycie te wiersze są sklejane z powrotem w jedną wartość (“rozwijanie”).
  • Encoded-words (RFC 2047). Nagłówki oficjalnie dopuszczają tylko ASCII, więc tekst nieangielski i emoji są opakowywane jako =?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.

3. Objaśnienie pól nagłówków

To zmienne, które zobaczysz u góry niemal każdej wiadomości. Nie wszystkie są zawsze obecne.

Adresowanie i tożsamość

NagłówekCo oznacza
FromAutor 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, CcGłówni odbiorcy oraz kopia. Nagłówki czysto informacyjne — rzeczywistą dostawą steruje koperta SMTP, a nie one.
BccUkryta kopia. Zwykle usuwana przed dostarczeniem, więc rzadko widzisz ją w odebranej poczcie.
Reply-ToDokąd mają trafiać odpowiedzi, jeśli różni się to od From (np. nadawca “no-reply” kierujący odpowiedzi do wsparcia).
Return-PathAdres 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.
SenderRzeczywisty agent, który wysłał wiadomość, gdy nie jest nim autor (listy mailingowe, “w imieniu”).
Message-IDGlobalnie unikalny identyfikator tej wiadomości, np. <a1b2c3@example.com>. Używany do wątkowania i usuwania duplikatów.

Wątkowanie, daty i temat

NagłówekCo oznacza
SubjectWiersz tematu. Często encoded-word, gdy zawiera znaki spoza ASCII.
DateKiedy autor wysłał wiadomość, wraz z przesunięciem strefy czasowej, np. Wed, 9 Jul 2026 10:15:00 +0000.
In-Reply-ToMessage-ID, na który odpowiada ta wiadomość — pozwala klientom budować wątki rozmów.
ReferencesŁańcuch wcześniejszych Message-ID w wątku.

Trasowanie i uwierzytelnianie

NagłówekCo oznacza
ReceivedWiersz ś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-SignaturePodpis kryptograficzny, który pozwala odbiorcy potwierdzić, że wiadomość rzeczywiście została wysłana przez domenę i nie została zmieniona w drodze.
Authentication-ResultsWerdykt serwera odbierającego dotyczący kontroli SPF, DKIM i DMARC (pass/fail). Szybki sposób, aby ocenić, czy polu “From” można zaufać.
Received-SPFCzy wysyłający adres IP jest uprawniony do wysyłania poczty dla domeny koperty.
List-UnsubscribeDla poczty masowej/newsletterów: adres lub URL, którego klient używa do wypisania się jednym kliknięciem.

4. Zmienne MIME — jak zbudowana jest treść

Tych kilka nagłówków steruje całą strukturą treści. To zmienne, które ten dekoder interesują najbardziej.

ZmiennaCo robi
MIME-Version: 1.0Deklaruje, że wiadomość używa MIME. Praktycznie zawsze 1.0.
Content-TypeNajważniejsza pojedyncza zmienna: typ mediów danej części (text/plain, text/html, image/png, application/pdf, multipart/*…). Niesie parametry po średnikach.
charsetParametr tekstowego Content-Type: kodowanie znaków tekstu, np. charset="UTF-8". Potrzebne, aby zamienić bajty z powrotem na właściwe litery.
boundaryParametr typu multipart: unikalny ciąg-znacznik. Każda część zaczyna się od --boundary, a ostatnia kończy się na --boundary--.
Content-Transfer-EncodingJak bajty części zostały spakowane, aby przetrwały jako 7-bitowy tekst w sieci (patrz tabela poniżej).
Content-Dispositioninline (pokaż w wiadomości) albo attachment (zaoferuj jako plik). Zwykle niesie parametr filename.
name / filenameProponowana nazwa pliku załącznika, odpowiednio w Content-Type i Content-Disposition.
Content-IDIdentyfikator części inline (np. obrazu), aby treść HTML mogła odwołać się do niej przez cid:.

Popularne typy multipart

  • multipart/alternativeta 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…).

5. Wartości Content-Transfer-Encoding

WartośćZnaczenie
7bitZwykły ASCII, nic nie zmienione. Wartość domyślna, gdy nie podano kodowania.
8bitSurowe bajty powyżej 127 używane bezpośrednio (wymaga kanału 8-bit-clean).
binaryDowolne bajty, bez ograniczeń długości wiersza — rzadkość w normalnej poczcie.
quoted-printablePrzeważ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.
base64Dowolne 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ć).

6. Przykład krok po kroku

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é”.

7. Prywatność

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.