Unicode i e-mail - Unicode and email
Wiele klientów poczty e-mail oferuje teraz wsparcie dla Unicode . Niektórzy klienci automatycznie wybierają między starszym kodowaniem a Unicode w zależności od zawartości poczty, automatycznie lub na żądanie użytkownika.
Wymagania techniczne dotyczące wysyłania wiadomości zawierających znaki spoza ASCII pocztą elektroniczną obejmują
- kodowanie niektórych pól nagłówka (tematu, nazwy nadawcy i odbiorcy, organizacji nadawcy i nazwy zwrotnej) oraz opcjonalnie treści w kodowaniu content-transfer
- kodowanie znaków spoza ASCII w jednej z transformacji Unicode
- negocjowanie użycia kodowania UTF-8 w adresach e-mail i kodach odpowiedzi ( SMTPUTF8 )
- przesyłanie informacji o kodowaniu content-transfer i zastosowanej transformacji Unicode, aby wiadomość mogła zostać poprawnie wyświetlona przez odbiorcę (patrz Mojibake ).
Jeśli adres e-mail nadawcy lub odbiorcy zawiera znaki spoza ASCII, wysłanie wiadomości wymaga również zakodowania ich do formatu zrozumiałego dla serwerów pocztowych.
Obsługa Unicode w protokołach
- RFC 6531 zapewnia mechanizm zezwalający na adresy e-mail inne niż ASCII zakodowane jako UTF-8 w protokole SMTP lub LMTP
Obsługa Unicode w nagłówku wiadomości
Aby używać Unicode w niektórych polach nagłówka wiadomości e-mail, np. w tematach, nazwach nadawcy i odbiorcy, tekst Unicode musi być zakodowany przy użyciu MIME "Encoded-Word" z kodowaniem Unicode jako zestawem znaków. Aby używać Unicode w domenowej części adresów e-mail, tradycyjnie należy używać kodowania IDNA . Alternatywnie, SMTPUTF8 pozwala na użycie kodowania UTF-8 w adresach e-mail (zarówno w części lokalnej, jak iw nazwie domeny), a także w sekcji nagłówka poczty. Stworzono różne standardy, aby zmodernizować obsługę danych innych niż ASCII do protokołu poczty e-mail, który pierwotnie był tylko ASCII:
- RFC 2047 zapewnia obsługę kodowania wartości spoza ASCII, takich jak prawdziwe nazwiska i wiersze tematu w nagłówku wiadomości e-mail
- RFC 5890 zapewnia obsługę kodowania nazw domen innych niż ASCII w systemie nazw domen
- RFC 6532 pozwala na użycie UTF-8 w sekcji nagłówka poczty
Obsługa Unicode w treści wiadomości
Podobnie jak w przypadku wszystkich kodowań z wyjątkiem US-ASCII , podczas używania tekstu Unicode w wiadomości e-mail, MIME musi być używany do określenia, że format transformacji Unicode jest używany dla tekstu.
UTF-7 , przestarzałe kodowanie, miało przewagę nad kodowaniem Unicode w przestarzałych sieciach o czystości 8-bitowej, ponieważ nie wymagało kodowania transferu, aby zmieścić się w siedmiobitowych ograniczeniach starszych serwerów poczty internetowej. Z drugiej strony, UTF-16 musi być zakodowany, aby pasował do formatu danych SMTP. Chociaż nie jest to ściśle wymagane, kodowanie UTF-8 jest zwykle również kodowane transferowo, aby uniknąć problemów na siedmiobitowych serwerach pocztowych. Kodowanie transferu MIME w UTF-8 czyni go nieczytelnym jako zwykły tekst (w przypadku base64 ) lub, w przypadku niektórych języków i typów tekstu, bardzo nieefektywnym rozmiarem (w przypadku cytowanego-drukowalnego ).
Niektóre formaty dokumentów, takie jak HTML , PostScript i Rich Text Format, mają własne 7-bitowe schematy kodowania znaków innych niż ASCII, dzięki czemu można je wysyłać bez użycia specjalnego kodowania wiadomości e-mail. Np. wiadomość e-mail w formacie HTML może używać encji HTML do używania znaków z dowolnego miejsca w Unicode, nawet jeśli tekst źródłowy HTML wiadomości e-mail jest w starszym kodowaniu (np. 7-bitowy ASCII). Aby uzyskać szczegółowe informacje, zobacz Unicode i HTML .