Ile znaków może znajdować się w temacie e-maila internetowego? Miałem skan RFC do wiadomości e-mail, ale nie widziałem dokładnie, jak długo może to trwać. Mam kolegę, który chce programowo sprawdzić to.
Jeśli nie ma formalnego limitu, co w praktyce sugerować dobrą długość?
Odpowiedzi:
Aby rozpocząć, patrz RFC 2822 , sekcja 2.1.1.
Jak później stwierdza RFC, możesz obejść ten limit (nie że powinieneś), składając obiekt na wiele linii.
Zalecenia dotyczące nie więcej niż 78 znaków w nagłówku tematu brzmią rozsądnie. Nikt nie chce przewijać, aby zobaczyć cały wiersz tematu, a po prawej stronie może zostać odcięte coś ważnego.
źródło
RFC2322 stwierdza, że nagłówek tematu „nie ma ograniczenia długości”
ale aby utworzyć długie nagłówki, ale musisz podzielić je na wiele linii, proces zwany „składaniem”.
podmiot jest zdefiniowany jako „nieustrukturyzowany” w RFC 5322
oto kilka cytatów ([...] wskazuje rzeczy, które pominąłem)
źródło
c-client
po pewnym teście: jeśli wyślesz wiadomość e-mail do klienta programu Outlook, a temat ma> 77 znaków, i musi on zostać użyty
"=?ISO"
w temacie (w moim przypadku z powodu akcentów), wówczas OutLook „wycina” temat w środku i siatki to wszystko, co nastąpi później, w tym tekst, załączniki itp. ... wszystko siatka!Mam kilka takich przykładów:
Do:
Jak widać, w wierszu tematu wycięto znak char 78 ze znakiem „=”, a następnie 2 lub 3 wiersze, a następnie kontynuowano z resztą tematu źle.
Zgłoszono mi to od kilku klientów, którzy korzystali z OutLook, inni klienci poczty e-mail dobrze sobie z nimi radzą.
Jeśli nie masz na nim ISO, to nie zaszkodzi, ale jeśli dodasz go do swojego przedmiotu, aby był miły dla RFC, otrzymasz niespodziankę od OutLook. Bit, jeśli nie dodasz ISO, wtedy iPhone nie zrozumie go (a załączanie plików o nazwach przy użyciu takich znaków nie będzie działać na iPhone'ach).
źródło
Nie wierzę, że istnieje tutaj formalny limit i jestem prawie pewien, że nie ma żadnego sztywnego limitu określonego w RFC, jak odkryłeś.
Myślę, że niektóre dość powszechne ograniczenia dla tematów w ogóle (nie tylko e-mail) to:
Oczywiście chcesz wymyślić coś rozsądnego. Jeśli piszesz klienta poczty e-mail, możesz użyć czegoś takiego jak 256 znaków i oczywiście dokładnie przetestować na dużych serwerach komercyjnych, aby upewnić się, że prawidłowo obsługują twoją pocztę.
Mam nadzieję że to pomoże!
źródło
Ważne jest, którego mechanizmu używasz do wysyłania wiadomości e-mail. Większość współczesnych bibliotek (tj. System.Net.Mail) ukryje przed Tobą składanie. Po prostu wstawiłeś bardzo długi temat wiadomości e-mail bez (CR, LF, HTAB). Jeśli zaczniesz próbować samodzielnie spasować, wszystkie zakłady są wyłączone. Rozpocznie się zgłaszanie błędów. Więc jeśli masz ten problem, po prostu odfiltruj CR, LF, HTAB i pozwól bibliotece wykonać pracę za Ciebie. Zazwyczaj można również ustawić typ tekstu kodowania jako osobne pole. Nie ma potrzeby kodowania ISO w wierszu tematu.
źródło