首页 > 解决方案 > JavaMail API:在 html 类型的邮件内容中维护转义字符

问题描述

我有一个要求,我在表单字符串中接收用户输入,例如:

"Hi there,\r\n\r\nThe information is not visible in the page since you’ve adjusted the app.\r\n\r\ncan you please fix it?\r\n\r\nThanks,\r\n\r\nXYZ"

虽然它在 UI 中看起来像这样:

Hi there,

The information is not visible in the page since you’ve adjusted the app.

can you please fix it?

Thanks,

XYZ

我需要解析上面的字符串,/r /n并通过邮件将其发送给其他人。

现在,当我在控制台中打印它时,它的打印效果就像它在 UI 中的样子,很明显。

但是,当我尝试将此字符串作为java mail内容时,当我检查收到的电子邮件时,我只需将所有内容放在一行中。

邮件的内容类型设置为text/html; charset=utf-8。我也尝试pre-wrap了造型,但没有奏效。

private static String createEmailContent(String descp) {

    StringBuilder sb = new StringBuilder("<style> div { white-space: pre-wrap;}</style><div>");
    sb.append(descp);
    sb.append("/<div>");
    return sb.toString();
}

如何美化内容以使其看起来与收到的完全一样?

标签: javajakarta-mailhtml-email

解决方案


这是纯文本内容,只需将其作为 text/plain 而不是 text/html 发送。

如果您确实需要将其作为 text/html 发送,则需要处理数据并改为 html 换行符 <br> 或将其全部包装在 <pre> 中。


推荐阅读