在MimeMessage中无法正确解释换行符?

时间:2012-11-13 09:48:17

标签: java mime-types mime mime-message

StringBuffer emailMessage = new StringBuffer("Dear Scott");
emailMessage.append("\r\n");
emailMessage.append("Sending mail over internet");

所以这是我在调试器中检查时的格式化内容

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发送时无法正确解释新的字符?

2 个答案:

答案 0 :(得分:12)

由于您要发送HTML电子邮件,因此您必须使用<br />代替\r\n,就像经典 HTML文档一样(例如.html文件)。当您使用\r\n时,呈现的内容将不会打印新行,但邮件的源代码将会(反之亦然)。

答案 1 :(得分:9)

HTML不解释换行符。将内容类型设置为“html”时,请使用“&lt; br /&gt;”而不是“\ r \ n”:

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