的java-gmail-imap
的InternetAddress.parse(String addressList, boolean strict)
功能部件的故障對MIME頭是用來解析由形式[email protected]
的,
和Personal Name <[email protected]>
是符合RFC822標準分隔的電子郵件列表。網際地址解析,因爲某些電子郵件
這通常用於解析電子郵件的MIME頭(這在gmail API返回的Message
對象中的MessagePartHeader
中存在)。
問題:parse
方法遇到無法解析的電子郵件地址時會拋出AddressException
。問題在於它無法解析整個地址列表,因爲可能存在一個錯誤/格式錯誤/非ascii電子郵件地址。是否有將mime標題(如bcc,cc)分成單獨的電子郵件地址並分別解析它們的好方法? (這並不像,
那樣簡單,因爲名稱可能包含,
)。這樣我可以本地化不良的電子郵件地址。
另外,有沒有更好的Java解析器能解析郵件地址中包含非ASCII字符的郵件(RFC6530,RFC6531和RFC6532)?這樣我可以更好地解析這個不符合RFC822的本地化錯誤電子郵件地址。
你叫的InternetAddress.parse方法明確?或者你是否依賴於MimeMessage類所做的隱式解析?如果是後者,請設置['mail.mime.address.strict'](https://javaee.github.io/javamail/docs/api/javax/mail/internet/package-summary.html#mail.mime。 address.strict)會話屬性爲'false',這應該確保您永遠不會收到AddressException。 –
我正在顯式調用InternetAddress.parse方法。我應該爲前一種情況做些什麼? – iart
調用[parseHeader](https://javaee.github.io/javamail/docs/api/javax/mail/internet/InternetAddress.html#parseHeader-java.lang.String-boolean-)方法。 –