Ich versuche, eine E-Mail in Java zu senden, aber wenn ich den Text der E-Mail in Outlook lese, werden alle meine Zeilenumbrüche beseitigt. Ich setze \ n an die Enden der Zeilen, aber gibt es noch etwas Besonderes, das ich tun muss? Die Empfänger verwenden immer Outlook.
Ich habe auf microsoft.com eine Seite gefunden, auf der steht, dass es in Outlook die Funktion "Zeilenumbrüche entfernen" gibt. Bedeutet dies, dass es keine andere Lösung gibt, als diese Einstellung zu deaktivieren?
Vielen Dank
Ich habe heute gerade damit gekämpft. Nennen wir das Verhalten beim Entfernen der zusätzlichen Zeilenumbrüche "Fortsetzung". Ein wenig experimentieren ergibt folgendes Verhalten:
Bitte beachten Sie, dass ich dies alles mit Outlook 2007 versucht habe. YMMV.
Beenden Sie daher nach Möglichkeit alle Aufzählungszeichen mit einem Satzzeichen, einem Tabulator oder sogar drei Leerzeichen.
quelle
Sie können einen Zeilenumbruch in Outlook erzwingen, wenn Sie ein (oder zwei?) Tabulatorzeichen (\ t) unmittelbar vor dem Zeilenumbruch (CRLF) anhängen.
Beispiel:
This is my heading in the mail\t\n Just here Outlook is forced to begin a new line.
Es scheint unter Outlook 2010 zu funktionieren. Bitte testen Sie, ob dies mit anderen Versionen funktioniert.
Siehe auch Outlook, das meine Zeilenumbrüche automatisch reinigt und mein E-Mail-Format durcheinander bringt
quelle
Microsoft Outlook 2002 und höher entfernt standardmäßig "zusätzliche Zeilenumbrüche" aus Textnachrichten (kb308319) . Das heißt, Outlook scheint Zeilenvorschub- und / oder Wagenrücklaufsequenzen in Textnachrichten einfach zu ignorieren und alle Zeilen zusammen auszuführen.
Dies kann zu Problemen führen, wenn Sie versuchen, Code zu schreiben, der automatisch eine E-Mail-Nachricht generiert, die von jemandem gelesen wird, der Outlook verwendet.
Angenommen, Sie möchten aus Gründen der Übersichtlichkeit separate Informationen in separaten Zeilen bereitstellen:
Transaktion braucht Aufmerksamkeit!
PostedDate: 1/30/2009
Betrag: $ 12,222.06
TransID: 8gk288g229g2kg89
Postleitzahl: 91543
Ihr Outlook-Empfänger sieht die Informationen wie folgt zusammengeschlagen:
Transaktion braucht Aufmerksamkeit! Veröffentlicht am: 30.01.2009 Betrag: 12.222,06 USD TransID: 8gk288g229g2kg89 Postleitzahl: 91543
Es scheint keine einfache Lösung zu geben. Alternativen sind:
quelle
Ich hatte das gleiche Problem und fand eine Lösung. Versuchen Sie Folgendes:
%0D%0A
Hinzufügen eines Zeilenumbruchs.quelle
Ich habe HTML-Zeilenumbruch anstelle von "\ n" verwendet. Es hat gut funktioniert.
quelle
Das Hinzufügen von "\ t \ r \ n" (\ t für TAB) anstelle von "\ r \ n" hat in Outlook 2010 für mich funktioniert. Hinweis: Das Hinzufügen von 3 Leerzeichen am Ende jeder Zeile bewirkt dasselbe, aber das sieht aus wie ein Programmier-Hack!
quelle
Der Trick besteht darin, die
encodeURIComponent()
Funktionalität von js zu verwenden:var formattedBody = "FirstLine \n Second Line \n Third Line"; var mailToLink = "mailto:[email protected]?body=" + encodeURIComponent(formattedBody);
ERGEBNIS:
quelle
Verwenden Sie für Outlook 2010 und spätere Versionen \ t \ n anstelle von \ r \ n.
quelle
Sie müssen HTML-E-Mails senden. Mit
<br />
s in der E-Mail haben Sie immer Ihre Zeilenumbrüche.quelle
Wenn Sie ein '.' (Punkt-) Zeichen am Ende jeder Zeile. Dies scheint zu verhindern, dass Outlook die Textformatierung ruiniert.
quelle
Versuchen Sie
\r\c
statt\n
.EDIT: Ich denke, @Robert Wilkinson hatte es richtig.
\r\n
. Das Gedächtnis ist einfach nicht mehr das, was es früher war.quelle
Das
\n
funktioniert größtenteils für uns, aber Outlook nimmt es manchmal auf sich, die Zeilenumbrüche zu entfernen, wie Sie sagen.quelle
Ich hatte auch dieses Problem mit dem Nur / Text-Mail-Typ. Früher habe ich "\ n \ n" verwendet, aber es gab zwei Zeilenumbrüche. Dann habe ich "\ t \ n" verwendet und es hat funktioniert. Ich habe
StringBuffer
in Java verwendet, um Inhalte anzuhängen.Der Inhalt wurde in der nächsten Zeile in Outlook 2010-Mail gedruckt.
quelle
Ich hatte mit all den oben genannten Lösungen zu kämpfen und hier hat nichts geholfen, da ich eine String-Variable (einfacher Text aus einem JTextPane) in Kombination mit der Formatierung "text / html" in meiner E-Mail-Bibliothek verwendet habe.
Die Lösung für dieses Problem besteht also darin, "text / plain" anstelle von "text / html" zu verwenden und keine Rückgabezeichen zu ersetzen:
MimeBodyPart messageBodyPart = new MimeBodyPart(); messageBodyPart.setContent(message, "text/plain");
quelle
Wenn Sie den Text in
<pre>
Tags einfügen, wird Outlook formatiert und korrekt angezeigt.Ich habe es in CSS inline in HTML Body wie folgt definiert:
CSS:
Ich habe die Schriftfamilie so definiert, dass sie gesetzt werden muss.
HTML:
<td width="70%"><pre>Entry Date/Time: 2013-09-19 17:06:25 Entered By: Chris worklog mania ____________________________________________________________________________________________________ Entry Date/Time: 2013-09-19 17:05:42 Entered By: Chris this is a new Worklog Entry</pre></td>
quelle
Da es sich um eine Abfrage handelt, funktionieren nur Prozent maskierte Zeichen.% 0A gibt Ihnen einen Zeilenumbruch. Zum Beispiel,
<a href="mailto:someone@gmail.com?Subject=TEST&amp;body=Hi there,%0A%0AHow are you?%0A%0AThanks">email to me</a>
quelle
Ich hatte auch dieses Problem mit dem Typ "Nur / Text-Mail". Der Formular-Feed
\f
funktionierte für mich.quelle
Manchmal müssen Sie \ r \ n zweimal eingeben, um Outlook für die Pause zu zwingen.
Dadurch wird eine leere Zeile hinzugefügt, aber alle Zeilen werden unterbrochen.
quelle
\ r \ n funktioniert erst, wenn Sie den Körpertyp als Text festgelegt haben.
quelle
Ich hatte das gleiche Problem und hier ist der Code, der es behoben hat:
\t\n - for new line in Email service JavaMailSender String mailMessage = JSONObject.toJSONString("Your message").replace(",", "\t\n").trim();
quelle
IN MEINER ANWENDUNG BEHOBEN
In meiner Anwendung habe ich versucht, eine E-Mail zu senden, deren Nachrichtentext vom Benutzer im Textbereich eingegeben wurde. Beim Senden von E-Mails entfernte Outlook automatisch den vom Benutzer eingegebenen Zeilenumbruch.
zB wenn der Benutzer
Yadav eingegeben hat
Mahesh
Outlook zeigte es als
YadavMahesh
Lösung: Ich habe das Zeilenumbruchzeichen "\ r \ n" durch "\ par" geändert (denken Sie daran, das Leerzeichen am Ende des RTF-Codes "\ par" zu drücken), und Zeilenumbrüche werden wiederhergestellt.
Prost,
Mahesh
quelle
Versuche dies:
message.setContent(new String(body.getBytes(), "iso-8859-1"), "text/html; charset=\"iso-8859-1\"");
Grüße, Mohammad Rasool Javeed
quelle
Ich habe eine gute Lösung, die ich ausprobiert habe. Fügen Sie einfach das Zeichen (13) am Zeilenende wie im folgenden Beispiel hinzu:
Dim S As String S = "Some Text" & Chr(13) S = S + "Some Text" & Chr(13)
quelle
Wenn die Nachricht text / plain using ist, sollte \ r \ n funktionieren. Wenn der Nachrichtentyp text \ html ist, verwenden Sie
< p/>
quelle
Wenn mit formatiertem Text ohne HTML-Codierung gearbeitet werden muss. Dies kann einfach mit dem folgenden Szenario erreicht werden, in dem das div-Element im laufenden Betrieb erstellt wird und das
<pre></pre>
HTML-Element verwendet wird, um die Formatierung fortzusetzen.var email_body = htmlEncode($("#Body").val()); function htmlEncode(value) { return "<pre>" + $('<div/>').text(value).html() + "</pre>"; }
quelle
Ich bin mir nicht sicher, ob es oben erwähnt wurde, aber Outlook verfügt über eine Kontrollkästcheneinstellung mit dem Namen "Zusätzliche Zeilenumbrüche in Nur-Text-Nachrichten entfernen", die standardmäßig aktiviert ist. Es befindet sich an einer anderen Stelle für verschiedene Versionen von Outlook, aber für 2010 gehen Sie zur Registerkarte "Datei". Wählen Sie "Optionen => Mail". Scrollen Sie nach unten zu "Nachrichtenformat". Deaktivieren Sie das Kontrollkästchen.
quelle