javax.mail.internet.InternetAddress 本地部分为 UTF-8

javax.mail.internet.InternetAddress UTF-8 in local-part

我正在寻找将邮件发送到 UTF-8 编码邮件地址的解决方案。域部分没问题,因为我可以使用 punycode 对其进行编码然后发送。

但是我如何处理邮件地址的本地部分?例如我想发送邮件到 müller@testdomain.com? javax.mail.internet.InternetAddress 说,这不是一个有效的地址。

有什么建议吗?

您是否尝试过 URL 编码是否有效?所以它会变成:m%C3%BCller@testdomain.com.

Javamail 不支持 SMTPUTF8(在 RFC6531, local part), shown by the still open Bugreport 中定义)。快速搜索没有找到另一个支持的 Java 库。Apache Commons Email 例如也依赖于 Java邮件。

更新: Java邮件 1.6.0 which now supports internationalized email addresses (RFC 6530/6531/6532) is released since July 2017. Apache Commons Email 1.5 (August 2017) unfortunately still depends on JavaMail 1.5.6.