`

解决javamail IMAP协议报错:Unable to load BODYSTRUCTURE

阅读更多
在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

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics