Ausrufezeichen werden mit ca. 1000 Zeichen in E-Mails eingefügt


9

Verfügen Sie über ein .NET-Programm, das den System.Net.Main-Namespace verwendet, um eine E-Mail über SMTP zu senden.

Es befindet sich auf der Website eines Kunden, sodass es von dort über eine (Reihe von?) SMTP-Relay-Servern geleitet wird, bevor es sein Ziel erreicht.

Im Moment habe ich keine Informationen über diese SMTP-Wiedergabe- / E-Mail-Infrastruktur (und es wird schwierig sein, diese Informationen zu erhalten).

Irgendwo entlang der Zeile wird ein Ausrufezeichen in lange URLs in der E-Mail eingefügt, etwa 100 Zeichen vom Zeilenanfang entfernt.

EDIT- Eigentlich haben seine ca. 1000 Zeichen in gefunden

Dies geschieht nicht auf einem Testsystem oder Hunderten anderer Sites.

Ich bin mir sicher, dass dies etwas mit Escape-Codes zu tun haben muss, um lange Schlangen aufzubrechen.

Hat jemand irgendwelche Ideen?


Fand heraus, dass es nicht 100 Zeichen in einem Link sind, sondern ca. 1000 Zeichen in der Nachricht. Dies gibt mehr Informationen, aber immer noch Rätsel, warum immer nur von einem Kunden gemeldet. Vielleicht sind einige SMTP-Server toleranter als andere? systemwebmail.com/faq/4.4.5.aspx
Ryan

Antworten:


11

Wurde selbst davon getroffen.

Wenn Sie eine HTML-Nachricht ohne Wagenrücklauf erstellen, werden möglicherweise Fehler um die 1000-Zeichen-Marke angezeigt.

Die Lösung besteht darin, einige \ r \ n Zeichen hinzuzufügen, sodass jede Zeile kleiner als 1000 ist (oder 988, wenn Sie die \ r \ n Zeichen nicht zählen).

Siehe Abschnitt 2.1.1. Zeilenlängenbeschränkungen von RFC 2822 für weitere Details:

2.1.1. Linienlängenbeschränkungen

Es gibt zwei Grenzen, die dieser Standard für die Anzahl der Zeichen in einer Zeile festlegt. Jede Zeichenzeile darf nicht mehr als 998 Zeichen enthalten und SOLLTE nicht mehr als 78 Zeichen enthalten, ausgenommen die CRLF.


Vielen Dank - siehe auch Diskussionen zu diesem Beitrag - systemwebmail.com/faq/4.4.5.aspx
Ryan

RFC-2822-2.1.1 scheint eher eine Anleitung als eine erzwungene Regel zu sein. Outlook scheint betroffen zu sein. Einige andere E-Mail-Clients sind davon nicht betroffen.
YoYo

@YoYo Ich würde sagen, jede Zeichenzeile MUSS nicht mehr als 998 Zeichen sein, wäre eine Regel, aber und SOLLTE nicht mehr als 78 Zeichen sein, wäre eher eine Anleitung und ein Rat als eine Regel.
sgmoore

Ja, der Wortlaut erlaubt diese Flexibilität nicht. Ich muss zustimmen.
YoYo

0

Das Umschließen einer bestimmten Anzahl von Zeichen ist normalerweise ein Client-Problem. Wenn Sie es nicht an Ihren anderen Standorten oder auf einem Testgerät sehen, denke ich nicht, dass es Ihr Code ist. Sehen Sie nach, ob Sie nicht herausfinden können, welcher Client zum Empfangen der Nachricht verwendet wird. Es kann sich um eine alte Sache handeln, die bei einer bestimmten Anzahl von Zeichen automatisch umbrochen wird.


0

Es hört sich nicht so an, als würde die .Net-App das Problem verursachen, wenn das Problem nicht auf vielen anderen Websites auftritt, auf denen derselbe Code ausgeführt wird. Befindet sich die Problemstelle hinter einer Art Anwendungsfirewall oder einem Anti-Spam-Gerät, das möglicherweise den SMTP-Stream überwacht? In diesem Fall gibt es möglicherweise eine Regel zum Abschneiden langer URLs, die ausgelöst werden. Dadurch werden die URLs in der E-Mail gekürzt.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.