Wykrzykniki są wstawiane do wiadomości e-mail o długości około 1000 znaków

9

Mieć program .NET, który używa przestrzeni nazw System.Net.Main do wysyłania wiadomości e-mail przez SMTP.

Jest na stronie klienta, więc stamtąd przejdzie przez (serię?) Serwerów przekaźnikowych SMTP, zanim dotrze do miejsca docelowego.

W tej chwili nie mam informacji o tej infrastrukturze odtwarzania / wysyłania wiadomości e-mail smtp (a uzyskanie tych informacji będzie trudne).

Gdzieś wzdłuż linii wstawiany jest wykrzyknik do długich adresów URL w wiadomości e-mail około 100 znaków od początku linii.

EDYCJA - W rzeczywistości znalazłem około 1000 znaków

Nie dzieje się tak w systemie testowym ani w setkach innych witryn.

Jestem pewien, że ma to związek z kodami ucieczki, aby przełamać długie szeregi.

Czy ktoś ma jakieś pomysły?

Ryan
źródło
Odkryłem, że nie ma 100 znaków w łączu, a około 1000 znaków w wiadomości. Daje to więcej informacji, ale wciąż jest tajemnicą, dlaczego tylko jeden klient je zgłosił. Być może niektóre serwery smtp są bardziej tolerancyjne niż inne? systemwebmail.com/faq/4.4.5.aspx
Ryan

Odpowiedzi:

11

Zostałem tym trafiony.

Jeśli budujesz komunikat HTML bez powrotu karetki, możesz dostać błędy gdzieś wokół znaku 1000 znaków.

Rozwiązaniem jest dodanie kilku znaków \ ​​r \ n, tak aby każdy wiersz był mniejszy niż 1000 (lub 988, jeśli nie policzysz znaków \ ​​r \ n).

Sekcja 2.1.1. Limity długości linii według RFC 2822, aby uzyskać więcej informacji:

2.1.1 Limity długości linii

Istnieją dwa ograniczenia, które ten standard nakłada na liczbę znaków w linii. Każda linia znaków MUSI mieć nie więcej niż 998 znaków i MUSI mieć nie więcej niż 78 znaków, z wyłączeniem CRLF.

sgmoore
źródło
Dzięki - zobacz także dyskusje na temat tego postu - systemwebmail.com/faq/4.4.5.aspx
Ryan
RFC-2822-2.1.1 wydaje się bardziej wskazówką i radą niż wymuszoną regułą. Wygląda na to, że dotyczy to programu Outlook. Nie dotyczy to niektórych innych klientów poczty e-mail.
YoYo,
@YoYo Powiedziałbym, że każda linia znaków MUSI mieć nie więcej niż 998 znaków, co byłoby regułą, ale MUSI mieć nie więcej niż 78 znaków, byłoby raczej wskazówkami i poradami niż regułą.
sgmoore,
Tak, sformułowanie nie pozwala na taką elastyczność. Muszę się zgodzić.
YoYo,
0

Zawijanie określonej liczby znaków jest zwykle problemem klienta. Jeśli nie widzisz go w innych witrynach lub na testowej maszynie, nie sądzę, że to twój kod. Sprawdź, czy nie możesz dowiedzieć się, jakiego klienta używa się do odebrania wiadomości - może to być stara, chrupiąca rzecz, która polega na automatycznym zawijaniu określonej liczby znaków.

Josh Budde
źródło
0

Nie wygląda na to, że aplikacja .Net powoduje problem, jeśli problem nie występuje na wielu innych stronach, na których działa ten sam kod. Czy strona powodująca problemy znajduje się za zaporą ogniową lub urządzeniem antyspamowym, które może monitorować strumień smtp? Jeśli tak, może istnieć reguła dotycząca obcinania długich adresów URL, która następnie powoduje skrócenie adresów URL w wiadomości e-mail.

Fred Jonas
źródło