0

バックグラウンドで JavaMail API を使用する Spring MimeMessageHelper でメールを送信しています。次のように受信者の名前を入力するオプションが必要です。

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> )

..名前にアクセント付きの文字がある場合.この場合、名前をエンコードするにはどの関数を使用すればよいですか?

4

1 に答える 1

2
MimeMessage.addRecipient(Message.RecipientType.TO, new InternetAddress("stalin@ussr.su", "Товарищ Сталин"));

結果:

To: =?UTF-8?B?0KLQvtCy0LDRgNC40Ykg0KHRgtCw0LvQuNC9?= <stalin@ussr.su>

http://docs.oracle.com/javaee/6/api/javax/mail/Message.html#addRecipient(javax.mail.Message.RecipientType, javax.mail.Address)を参照してください

于 2014-05-30T11:30:13.917 に答える