这就是我设置的属性
props.setProperty(EmailSender.MAIL_BODY,
"This is an automated email.%nZip Path: %s\nAdditional Text: %s\nThank you.");
我用它作为
private String generateEmailBody(final EmailRequest diagnosticRequest) {
final String bodyTemplate = getExistingProperty(MAIL_BODY);
return String.format(bodyTemplate, diagnosticRequest.getZipFilePath(),
diagnosticRequest.getTextFromCustomer());
}
当我运行测试时,我在控制台上看到如下
Content-Type: text/html; charset=us-ascii
Content-Transfer-Encoding: 7bit
This is an automated email.
Zip Path: zipPath
Additional Text: text
Thank you.
.
但是当我收到电子邮件时,我将其视为
This is an automated email. Zip Path: zipPath Additional Text: text Thank you.
为什么不保留换行符?
我甚至尝试了%n
,%n%n
,但没有一个
答案 0 :(得分:1)
您的内容类型为Content-Type: text/html; charset=us-ascii
这意味着\n
或%n
将无法在HTML渲染空间中工作,并且忽略新行(至少大部分都是这样),用<br>
替换新行字符 - 这是html的新行
另一种解决方案是将您的文字包含在<pre>....</pre>
标记中,这样可以保留原始格式
当然,您也可以将内容类型更改为text/plain