我正在发送Spring MimeMessageHelper的电子邮件,它在后台使用JavaMail API。我想有一个输入收件人姓名的选项:
private static void setTo(final EmailDTO emailDTO, MimeMessageHelper helper) throws MessagingException {
if (StringUtils.isBlank(emailDTO.getToName())) {
helper.setTo(emailDTO.getToEmail());
} else {
helper.setTo(emailDTO.getToName() + " <" + emailDTO.getToEmail() + ">");
}
}
然而,这会抛出一个
javax.mail.internet.AddressException: Illegal character in address ( Őry József <mail@testcompany.com> )
..当名称中有重音字符时。在这种情况下,我将使用哪个函数对名称进行编码?
答案 0 :(得分:2)
MimeMessage.addRecipient(Message.RecipientType.TO, new InternetAddress("stalin@ussr.su", "Товарищ Сталин"));
结果:
To: =?UTF-8?B?0KLQvtCy0LDRgNC40Ykg0KHRgtCw0LvQuNC9?= <stalin@ussr.su>