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

因此,這裏是我的格式化的內容,當我在調試器換行符在MimeMessage中沒有正確解釋?

Dear Scott, 
Sending mail over internet 

檢查,但是當我雷鳥接受它,我像下面一行收到完整的消息。不知怎的,換行符 發送內容爲html

Dear Scott,Sending mail over internet 

這裏是我如何發送消息爲html

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

如果我只需發送文本msg.setText(身體時,不正確的解釋,CHARSET_UTF_8),然後我看到正確格式的消息,即「通過互聯網發送郵件」,見 下一行。 我不明白爲什麼在將文本發送爲html時不能正確解釋新行字符?

回答

11

因爲你發送的HTML電子郵件,您必須使用<br />代替\r\n,就像經典 HTML文檔(例如.html文件)。當您使用\r\n時,呈現的內容將不會打印新行,但郵件的源代碼將會(反之亦然)。

9

HTML不解釋換行符。當您設置的內容類型爲「HTML」,用「< BR/>」而不是「\ r \ n」:

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