在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
分享到:
相关推荐
在JavaMail中使用IMAP协议来收取Exchange 2007中的邮件,首先需要理解以下几个关键概念: 1. **JavaMail API**: JavaMail API提供了一系列的类和接口,如`Session`、`Store`、`Folder`和`Message`,它们是处理邮件...
该开发包是解决 JavaMail 发送邮件报错:java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream错误 ava.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream 使用方法: 将javaee.jar ...
3. **POP3和IMAP协议**:对于邮件接收,JavaMail 提供了对邮局协议第三版(POP3)和因特网消息访问协议(IMAP)的支持,允许用户从邮件服务器检索和下载邮件。 4. **JAF(JavaBeans Activation Framework)**:...
如果出现JavaMail 发送邮件报错:java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream错误ava.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream 是因为myeclipse中有自带的Javamail...
解决javamail 用imap 主题(标题)过长 会出异常
它支持SMTP(简单邮件传输协议)用于发送邮件,以及POP3(邮局协议)和IMAP(因特网消息访问协议)用于接收邮件。在发送HTML邮件时,我们通常会使用MIME(多用途互联网邮件扩展)类型来定义邮件内容的格式。 要使用...
用自己的邮件服务器发送邮件,遇到了这个问题,耗费了2个小时终于解决了 javax.mail.MessagingException: Could not connect to SMTP host: zxkaka.com, port: 25; 出现这个问题时,我在foxmail 以及 outlook都可以...
以上就是使用JavaMail和IMAP协议在Java中接收并解析电子邮件的基本步骤。通过深入学习和理解这些概念,你可以构建更复杂的邮件处理系统,比如实现邮件过滤、自动回复、邮件归档等功能。同时,还可以探索其他邮件协议...
IMAP协议是一个功能强大的电子邮件访问协议,它允许用户在不同设备上同步访问邮件服务器上的邮件。通过使用JavaMail API,我们可以在Java中轻松实现IMAP客户端,发送IMAP请求,并处理响应。这些工具不仅提供了邮
下面我们将详细探讨如何使用JavaMail API实现邮件的收取,特别是如何通过POP3和IMAP协议获取邮件信息。 首先,确保你的项目中已经引入了JavaMail相关的依赖,如果你使用的是Maven,可以在pom.xml文件中添加以下依赖...
由于微软邮箱公共服务器的邮箱账号停用了imap接收邮件,本资源介绍如何在oauth2下使用imap接收邮件的授权方法,使用这个方法进行账号授权后,就可以用imap协议去接收邮箱里的邮件了。
JavaMail 是一个开源的 Java 库,用于处理电子邮件通信。标题提到的是 JavaMail 1.5.2 版本的 JAR 包及其源码,这使得开发者能够深入理解库的工作原理并进行自定义开发。在Java应用程序中,JavaMail API 提供了处理...
而JavaMail则是一个开源库,用于处理邮件的发送和接收,提供了丰富的API,支持SMTP、POP3和IMAP等多种邮件协议。当这两者结合时,开发者可以轻松地在构建脚本中集成邮件功能,使得自动化测试、错误报告等任务更加...
1. **JavaMail API**: JavaMail API是Java平台上的一个标准API,用于处理邮件服务,包括SMTP、POP3和IMAP协议。它提供了丰富的类和接口,允许开发者创建复杂的邮件应用。 2. **SSL/TLS**: SSL(Secure Socket Layer...
3. **Provider**:JavaMail中的Provider是实现特定邮件协议(如SMTP、POP3、IMAP)的具体类,它们实现了JavaMail API的接口。例如,`SMTPTransport`用于发送邮件,而`IMAPFolder`用于读取邮件。 接下来,我们将重点...
7. **POP3和IMAP**:JavaMail支持这两种协议来读取邮件。POP3用于下载邮件,而IMAP则允许在邮件服务器上管理邮件。 8. **Security和认证**:JavaMail可以处理SSL/TLS加密,以及SMTP身份验证(如PLAIN、CRAM-MD5、...
JavaMail 是一个强大的开源库,专门用于在Java应用程序中处理电子邮件。这个完整JAR包包含了所有必要的组件,使得开发者能够方便地实现发送、接收、读取以及管理电子邮件。以下是JavaMail的一些关键知识点: 1. **...
7. **POP3 和 IMAP 协议支持**:JavaMail API 支持通过POP3和IMAP协议连接邮件服务器,获取邮件。`POP3Store`和`IMAPStore`类分别对应这两种协议的实现。 8. **认证机制**:支持基本的用户名/密码认证,以及更安全...
这个jar包是JavaMail的核心组件,包含了处理SMTP、POP3、IMAP等邮件协议的类和接口,使得开发者能够在Java应用中发送、接收和管理邮件。下面将详细阐述JavaMail库的关键知识点。 1. **JavaMail API**: JavaMail API...