我在寫一段需要發送郵件給非ASCII名字的用戶的Java代碼。我已經想出瞭如何爲身體,主題行和通用標題使用UTF-8,但我仍然堅持在收件人。將javax.mail.internet.MimeMessage發送給具有非ASCII名稱的收件人?
以下是我想要的「收件人:」字段中的內容:"ウィキペディアにようこそ" <[email protected]>
。這生活(爲我們今天的目的)在一個叫recip
字符串。
msg.addRecipients(MimeMessage.RecipientType.TO, recip)
給"忙俾ェ▎S]" <[email protected]>
msg.addHeader("To", MimeUtility.encodeText(recip, "utf-8", "B"))
拋出AddressException: Local address contains control or whitespace in string ``=?utf-8?B?IuOCpuOCo+OCreODmuODh+OCo+OCouOBq+OCiOOBhuOBk+OBnSIgPA==?= =?utf-8?B?Zm9vQGV4YW1wbGUuY29tPg==?=''
如何赫克我應該送這條消息?
下面是如何處理的其他組件:
- 身體HTML:
msg.setText(body, "UTF-8", "html");
- 頭:
msg.addHeader(name, MimeUtility.encodeText(value, "utf-8", "B"));
- 主題:
msg.setSubject(subject, "utf-8");
相關的問題和解決方案:http://stackoverflow.com/a/5650455/923560 – Abdull 2013-09-11 21:56:18