Warum wird eine mit idSMTP gesendete E-Mail unter bestimmten Umständen nicht ordnungsgemäß in eine neue Zeile verschoben?

StackOverflow https://stackoverflow.com/questions/8895953

  •  29-10-2019
  •  | 
  •  

Frage

Ich versende eine reine Text-E-Mail mit TIdMessage Und TIdSMTP.

Für die Body Ich verwende eine einfache verkettete Zeichenfolge wie

Body := SomeText + #13#10 +
          SomeOtherText + #13#10 +
          SomeMoreText + #13#10 +
          FinalText;

Wie auch immer, in der generierten E-Mail sind einige der „#13#10„werden nicht ignoriert.Ich protokolliere das Body Variable und ich kann sehen, dass der Text in eine neue Zeile wechselt, in der E-Mail passiert dies jedenfalls nicht.Das Merkwürdige ist, dass das nicht in jeder Zeile passiert, sondern nur in einigen Zeilen.

Haben Sie eine Idee, warum das passiert?Können Sie etwas vorschlagen, worauf Sie achten sollten?Gibt es einen möglichen Konflikt zwischen? #13#10 und unter bestimmten Umständen einen Text-E-Mail-Text?

AKTUALISIEREN

Nach weiteren Nachforschungen (dank Ihrer Kommentare) wurde mir klar, dass es sich um ein Outlook-Visualisierungsproblem handelt. Allerdings ist mir das Problem immer noch nicht klar.

Dies ist der Textkörper der in NotePad++ geöffneten E-Mail (ich habe die in Outlook gespeicherte Nachrichtendatei geöffnet), in der ich auch Zeilenumbrüche zeige (Sie können #13#10 als CR LF sehen.Ich habe die beiden Zeilenumbrüche, die in Outlook problematisch sind, rot und grün hervorgehoben (aber Sie können sehen, dass sie in NP++ wie alle anderen Zeilenumbrüche aussehen):Email body in NotePad++

Die E-Mail in Outlook sieht folgendermaßen aus (bitte beachten Sie, dass Outlook angibt, dass die Nachricht zusätzliche Zeilenumbrüche enthält und dass diese entfernt wurden, er jedoch eine Option zum Wiederherstellen dieser Zeilenumbrüche anbietet:EMail in Outlook displayin bad]

Nachdem Sie diese Option ausgewählt haben, ist die E-Mail in Ordnung:enter image description here

Ich verstehe nicht, warum das nur bei einigen Zeilenumbrüchen passiert.Hilft Ihnen das, das Problem besser zu verstehen?

War es hilfreich?

Lösung

Sie könnten es mit verwenden IdMessage.NoEncode := True damit der Körper nicht sein wird RCF 821 codiert.

Oder verwenden Sie besser eine moderne Kodierung IdMessage.ContentType := 'text/html' und ersetzen #13#10 mit <br>

BEARBEITEN:Dies ist ein Outlook Express-Problem.

Suchen Hier Und Hier.Eine Lösung wäre, am Anfang jeder Textzeile zwei Leerzeichen einzufügen, damit Outlook die Umbrüche nicht entfernt.


Beachten Sie, dass der Microsoft-Support auch die Verwendung des HTML-Formats als mögliche Problemumgehung für Outlook Express empfiehlt:

Methode 2. Verwenden Sie das HTML- oder Rich-Text-FormatSie können beim Erstellen neuer Elemente HTML- oder Rich-Text-Formate verwenden.Oder Sie können bestehende Beiträge in diese Formate ändern.

Andere Tipps

Es kann sein, dass der E-Mail-Client einige Zeilenumbrüche entfernt, wenn Ihr ContentType reiner Text ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top