2012-11-13 25 views
6
StringBuffer emailMessage = new StringBuffer("Dear Scott"); 
emailMessage.append("\r\n"); 
emailMessage.append("Sending mail over internet"); 

Więc tutaj jest mój sformatowaną zawartość kiedy sprawdzać debuggerZnak nowej linii nie jest poprawnie interpretowany w MimeMessage?

Dear Scott, 
Sending mail over internet 

Ale kiedy otrzyma ją w Thunderbird, i otrzymać pełną wiadomość w jednej linii jak poniżej. Jakoś znak nowej linii nie jest poprawnie interpretowana podczas wysyłania zawartości w formacie HTML

Dear Scott,Sending mail over internet 

tutaj jest jak jestem wysyłania wiadomości w formacie HTML

MimeMessage msg = null; 
msg = new MimeMessage(mailSession); 
msg.setText(body, CHARSET_UTF_8, "html"); 

Jeśli po prostu wysłać tekst jako msg.setText (ciała , CHARSET_UTF_8), a następnie widzę komunikat we właściwym formacie, tj. "Wysyłanie poczty przez Internet", widoczny w następnym wierszu w . Nie rozumiem, dlaczego znak nowej linii nie jest interpretowany poprawnie podczas wysyłania tekstu jako HTML?

Odpowiedz

11

bo jesteś wysyłając e-mail w formacie HTML, musisz użyć zamiast <br />\r\n, podobnie jak w przypadku dokumentu classic (np. Plik .html). Gdy używasz \r\n, renderowana zawartość nie wydrukuje nowego wiersza, ale kod źródłowy wiadomości będzie (i na odwrót).

9

HTML nie interpretuje znaków nowej linii. Po ustawieniu typu zawartości z „html”, użyj „< br/>” zamiast „\ r \ n”:

StringBuffer emailMessage = new StringBuffer("Dear Scott"); 
emailMessage.append("<br/>"); 
emailMessage.append("Sending mail over internet");