當我們收到包含包含方括號的收件人InternetAddresses
的MimeMessage
時,我們在撥打MimeMessage.getAllRecipients()
時會收到'javax.mail.internet.AddressException: Local address contains illegal character in string
'。下面電子郵件地址中的方括號字符
的電子郵件地址是一個例子,我們得到了上面的異常:
"ABC NAME-DEM-SAST1" <ABCNAME-DEM-SAST1[[email protected]]>
是上面的例子中解決一個實際有效的電子郵件地址?如果是這樣,爲什麼不能從它創建InternetAddress?
例如InternetAddress add = new InternetAddress("\"ABC NAME-DEM-SAST1\" <ABCNAME-DEM-SAST1[[email protected]]>"
,false);我看過Javamail problem with ñ characters in mail addresses問題的答案,但無濟於事。
我正在使用javamail 1.4並且JVM正在Linux主機系統上運行。
關於這個問題的任何見解將不勝感激!
Regards, PM。
感謝那個信息Pyranja。我們收到的以這種格式格式化的收件人地址的郵件全部來自Exchange服務器/ Outlook客戶端。爲了成功處理這些非標準的收件人地址格式,我將Session的屬性'mail.mime.address.strict'設置爲false。我們處理的所有SMTP郵件都來自郵件服務器,而不是客戶端,所以我們假設收件人地址已經被源郵件服務器檢查過!我不知道這是否是最好的解決方案,但至少我們現在可以處理這些類型的收件人地址了。 –