Kodowanie pól From/To to sposób zapisu nazw nadawcy i odbiorcy zawierających znaki spoza podstawowego alfabetu.
Jak zapisuje się nazwy nadawcy i odbiorcy w nagłówkach wiadomości
Pola From: i To: należą do nagłówków wiadomości e-mail opisanych w standardzie RFC 5322. Pole From: wskazuje autora lub autorów wiadomości, natomiast To: zawiera adresatów, do których wiadomość jest bezpośrednio kierowana. W najprostszym przypadku nagłówek ma postać From: Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie w przeglądarce obsługi JavaScript. albo To: Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie w przeglądarce obsługi JavaScript.. Adres e-mail składa się z lokalnej części przed znakiem @ oraz nazwy domenowej po tym znaku.
Oba pola mogą zawierać także nazwę wyświetlaną, czyli opisową nazwę osoby lub organizacji umieszczoną przed właściwym adresem w nawiasach ostrych. Przykładowo zapis From: Jan Kowalski <Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie w przeglądarce obsługi JavaScript.> oddziela nazwę prezentowaną użytkownikowi od adresu używanego przez mechanizmy dostarczania poczty. Sama nazwa może zawierać spacje, ale znaki spoza podstawowego zestawu ASCII wymagają odpowiedniego zakodowania, jeżeli wiadomość korzysta z klasycznej składni nagłówków.
Encoded-word, czyli kodowanie znaków narodowych w nazwie wyświetlanej
Do zapisu znaków spoza ograniczonego zestawu znaków nagłówków służy mechanizm encoded-word zdefiniowany w RFC 2047. Nie jest to zamiana całego nagłówka na jeden dowolny ciąg znaków. Zakodowany fragment ma określoną składnię: zaczyna się od =?, następnie zawiera nazwę zestawu znaków, znak zapytania, metodę kodowania, kolejny znak zapytania, właściwe dane oraz zakończenie ?=. Przykład nazwy zapisanej w UTF-8 i kodowaniu quoted-printable może wyglądać następująco: =?UTF-8?Q?Jan_Kowalski?=. W tym wariancie znak podkreślenia reprezentuje spację, a wybrane bajty mogą być zapisane jako znak równości i dwie cyfry szesnastkowe.
Drugą metodą przewidzianą przez RFC 2047 jest B, czyli kodowanie Base64. Stosuje się je do bajtów wynikających z wybranego zestawu znaków, na przykład UTF-8. Przykładowy nagłówek może więc zawierać formę From: =?UTF-8?B?...?= <Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie w przeglądarce obsługi JavaScript.>. Program pocztowy powinien rozpoznać deklarowany charset, zdekodować zawartość i wyświetlić użytkownikowi czytelną nazwę. Jeżeli deklaracja charsetu, metoda kodowania albo sam ciąg bajtów jest niepoprawny, odbiorca może zobaczyć surowy zapis =?UTF-8?...?=, błędne znaki lub zastępcze symbole.
Różnica między nazwą osoby a międzynarodowym adresem e-mail
Kodowanie nazwy wyświetlanej nie zmienia samego adresu pocztowego. W zapisie Łukasz Żółć <Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie w przeglądarce obsługi JavaScript.> polskie znaki występują w części opisowej, a adres nadal używa wyłącznie znaków ASCII. Jest to klasyczny przypadek, w którym RFC 2047 rozwiązuje problem prezentacji nazwy w nagłówku. Z kolei adres zawierający znaki spoza ASCII w lokalnej części, taki jak adres z nazwą użytkownika zapisaną alfabetem narodowym, należy do obszaru międzynarodowej poczty elektronicznej.
Międzynarodowe adresy i nagłówki są opisane między innymi w RFC 6531 oraz RFC 6532, które rozszerzają SMTP i format wiadomości o obsługę UTF-8. Wymagają one zgodności całego łańcucha komunikacji, w tym klienta pocztowego, serwera nadawcy, serwera odbiorcy i mechanizmów przekazywania wiadomości. Samo zakodowanie nazwy w encoded-word nie zapewnia obsługi adresu z międzynarodową lokalną częścią. W praktyce trzeba rozdzielić trzy elementy: nazwę wyświetlaną, lokalną część adresu oraz domenę. Każdy z nich może podlegać innym regułom składniowym i kodowaniu.
Rozpoznawanie problemów z polami From i To
Podczas diagnozowania problemów należy najpierw obejrzeć rzeczywistą treść nagłówków, a nie tylko widok wiadomości w programie pocztowym. Warto sprawdzić, czy każdy fragment encoded-word ma poprawne ograniczniki, czy nazwa zestawu znaków odpowiada faktycznym bajtom oraz czy zastosowana metoda to obsługiwane Q albo B. Trzeba także odróżnić uszkodzenie prezentacji nazwy od problemu z adresem: błędna nazwa wyświetlana zwykle nie uniemożliwia dostarczenia wiadomości, natomiast niepoprawna składnia adresu może spowodować odrzucenie wiadomości albo skierowanie jej do niewłaściwego odbiorcy.
Znaczenie ma również miejsce wystąpienia kodowanego fragmentu. RFC 2047 przewiduje użycie encoded-word w określonych częściach nagłówków, takich jak nazwy wyświetlane, ale nie powinno się traktować go jako uniwersalnego sposobu kodowania całego adresu. Program pocztowy, który poprawnie pokazuje polskie znaki w nazwie nadawcy, może nadal nie obsługiwać międzynarodowych adresów w lokalnej części. Warszawskie Pogotowie Komputerowe zajmuje się profesjonalną naprawą laptopów, komputerów stacjonarnych PC i ich podzespołów, dlatego przy problemach z wyświetlaniem nagłówków można rozpocząć diagnostykę od konfiguracji programu pocztowego, kodowania wiadomości oraz sposobu interpretacji pól From: i To:.