使用JavaMail获取信封对象

时间:2014-01-24 09:55:12

标签: gmail javamail gmail-imap envelope

我正在为Android构建一个邮件客户端,并使用JavaMail通过Imap Protocol获取消息。 我正在为我收到的每条消息保存Message-Id标头,并且我发现了一条消息,其中没有任何Message-Id标头,但是当我通过Imap从Gmail收到消息时,我得到一个名为Envalope的字段这个字段恰好包含了我需要的所有数据,包括Message-Id。

问题在于,无论我做什么,我都无法触及那个Envelope对象,我想知道是否有人已经这样做并且可以提出一些提示。

原始邮件附带以下内容:

MIME-Version: 1.0
From: "Mailbox Support" <support@mailboxapp.com>
To: ******
Subject: Tips for Using Mailbox in Gmail
Content-Type: multipart/alternative;
 boundary="----mailcomposer-?=_1-1369421942466"

------mailcomposer-?=_1-1369421942466

Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

[some text]

------mailcomposer-?=_1-1369421942466

Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: quoted-printable

[Some rich text]

------mailcomposer-?=_1-1369421942466--

The message Object as it is tranfered from Gmail

非常感谢

1 个答案:

答案 0 :(得分:0)

JavaMail使用IMAP ENVELOPE中的信息作为getMessageID等方法的返回值。通常情况下,这将与使用getHeader(“Message-ID”)获得的数据相同,但如果原始消息中缺少Message-ID标头,则服务器可能会“补充”一个值以在ENVELOPE中返回。