您的位置:首页 > 大数据 > 人工智能

Failed to load IMAP envelope解决办法

2017-03-21 14:33 363 查看
最近在开发一个发送、接收邮件的功能,发送邮件采用的是阿里云的邮件服务,用于推送公司的一些业务邮件,邮件回复地址是腾讯企业邮箱,在收件时采用的是imap协议,开发时可以正常的获取收件箱内的邮件,但是测试时却报了以下错误

javax.mail.MessagingException: Failed to load IMAP envelope
at com.sun.mail.imap.IMAPMessage.loadEnvelope(IMAPMessage.java:1226)
at com.sun.mail.imap.IMAPMessage.getSubject(IMAPMessage.java:331)


经过debug发现是在com.sun.mail.imap.IMAPMessage的1240行的判断未通过,导致envelope为null,从而抛出错误

if (r[i] == null ||
!(r[i] instanceof FetchResponse) ||
((FetchResponse)r[i]).getNumber() != seqnum)
continue;


在网上也查找了很多文章,对这个问题并没有什么明确的分析,本人从结果上看,通过smtp发送(程序)的邮件不能用imap接收,限于时间问题,未再深入研究出现原因,只是将收件方式替换为了pop3,目前测试是ok的,未再出现异常情况。

需要注意的是服务邮件内的客户端设置可能需要进行响应的调整,如腾讯企业邮箱:设置-客户端设置-收取选项-收取“30”天的邮件,需要调整为收取所有邮件。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: