【问题标题】:Japanese text as mail body日文文本作为邮件正文
【发布时间】:2026-01-03 00:40:01
【问题描述】:

我在发送日语邮件正文时也遇到了问题。

我使用了 MimeUtility.encodeText(subject, "utf-8", "B"),但这仅适用于主题,不适用于邮件正文中的日语文本。

headerMap.put("Subject", MimeUtility.encodeText(transmissionMessage.getSubject(), 
"UTF-8", "B"));
headerMap.put("ContentType", "text/html");
msg.setHeaders(headerMap);
msg.setBody(transmissionMessage.getBody());

我正在使用 apache camel 发送邮件。

请帮忙

【问题讨论】:

  • 试试 ContentType text/html;charset=utf-8
  • “问题”和“仅适用于主题”具体是什么意思?
  • 通过问题,我的意思是 MimeUtility.encodeText(transmissionMessage.getBody(), "UTF-8", "B") 不适用于日文文本,而 MimeUtility.encodeText(transmissionMessage.getSubject(), "UTF-8", "B") 适用于日语文本

标签: java apache-camel jakarta-mail


【解决方案1】:

问题已解决

exchange.setProperty(Exchange.CHARSET_NAME, "UTF-8");   

【讨论】:

    【解决方案2】:

    您永远不需要自己对文本进行编码。使用允许您指定要使用的字符集的 MimeMessage setSubject 和 MimeBodyPart setText 方法。

    【讨论】: