尝试阅读来自Outlook的电子邮件的电子邮件收件人时:
Caused by: javax.mail.internet.AddressException: Domain contains illegal character in string ``'xxxxx@yyyyyy.com'''
at javax.mail.internet.InternetAddress.checkAddress(InternetAddress.java:1269)
at javax.mail.internet.InternetAddress.parse(InternetAddress.java:1091)
at javax.mail.internet.InternetAddress.parseHeader(InternetAddress.java:658)
at javax.mail.internet.MimeMessage.getAddressHeader(MimeMessage.java:701)
at javax.mail.internet.MimeMessage.getRecipients(MimeMessage.java:534)
我遇到以下异常:
Folder inbox = store.getFolder(.......);
messages = inbox.getMessages();
这个角色给出了问题" ' "在电子邮件地址的开头和结尾。问题是,对于Outlook服务器,这是一个有效的地址,但不是MimeMessage,所以当我尝试检索它并应用所有检查时,我得到了异常。
请注意我没有创建消息,我只是通过以下方式阅读outlook inbox文件夹中的内容:
{{1}}
知道如何解决/解决这个问题吗?
非常感谢你 萨姆
答案 0 :(得分:2)
我怀疑您使用的是高于1.4的java邮件版本,默认情况下启用严格的RFC822语法
您可以通过禁用" strict"来阅读带引号的电子邮件InternetAddress这样的政策。
Properties props = new Properties();
props.setProperty("mail.mime.address.strict", "false");
Session session = Session.getDefaultInstance(props, ....);
或者只是
new InternetAddress("...", false);