解决javamail IMAP协议出错:Unable to load BODYSTRUCTURE
解决javamail IMAP协议报错:Unable to load BODYSTRUCTURE
在QQ邮箱上实验IMAP时,又遭遇了以下错误:
Unable to load BODYSTRUCTURE
Debug输出如下:
登陆QQ邮箱查看这封信时,发现是QQ发送失败产生的退信。
通过显示邮件原文,发现邮件头如下:
原来是QQ自己扩充了multipart格式
Content-type: multipart/report; report-type=delivery-status; boundary=QQ_MAIL_RETURN
造成JavaMail构造BODYSTRUCTURE时,发生错误。
既然知道原因了,那就把这封信转换成MimeMessage,应该会解决问题
果然转换为MimeMessage后,可以顺利读取BODYSTRUCTURE了
但造成的后果是,cmsg从服务器断开了
要对这封信进行管理的话,只能去操作imapMessage。
转载:http://www.spwei.com/archives/2011/127.htm
在QQ邮箱上实验IMAP时,又遭遇了以下错误:
Unable to load BODYSTRUCTURE
Debug输出如下:
A67 FETCH 23 (BODYSTRUCTURE) * 23 FETCH (BODYSTRUCTURE (("TEXT" "HTML" ("CHARSET" "gb18030") NIL NIL NIL 2433 24 NIL NIL NIL)("MESSAGE" "RFC822" ("CHARSET" "gb18030" "NAME" "mail.eml") NIL NIL "8BIT" 498 NIL NIL NIL) "REPORT" ("BOUNDARY" "QQ_MAIL_RETURN") NIL NIL)) A67 OK FETCH completed
登陆QQ邮箱查看这封信时,发现是QQ发送失败产生的退信。
通过显示邮件原文,发现邮件头如下:
X-QQ-mid: @bizmail11t1309337485t395253 Message-Id: From: "PostMaster" To: w@c527.com Date: Wed, 29 Jun 2011 16:51:27 +0800 Subject: 来自c527.com的退信 Content-type: multipart/report; report-type=delivery-status; boundary=QQ_MAIL_RETURN Auto-Submitted: auto-generated X-QQ-MAIL-TYPE: bulletin X-QQ-STYLE: 5
原来是QQ自己扩充了multipart格式
Content-type: multipart/report; report-type=delivery-status; boundary=QQ_MAIL_RETURN
造成JavaMail构造BODYSTRUCTURE时,发生错误。
既然知道原因了,那就把这封信转换成MimeMessage,应该会解决问题
MimeMessage cmsg = new MimeMessage((MimeMessage) imapMessage);
果然转换为MimeMessage后,可以顺利读取BODYSTRUCTURE了
但造成的后果是,cmsg从服务器断开了
要对这封信进行管理的话,只能去操作imapMessage。
转载:http://www.spwei.com/archives/2011/127.htm