使用javax.mail和IMAP从GMail获取UID消息

时间:2008-10-20 18:09:13

标签: java email gmail imap

我正在使用javax.mail使用IMAP从GMail检索邮件。我还希望获得应用于每个邮件的标签,因此我将遍历商店中的所有文件夹(实际上是标签)并为彼此下载邮件。

我使用ImapFolder的getUID方法获取每封邮件的UID,然后比较它们以识别不同文件夹中的相同邮件。

例如,如果我将邮件“Hello”标记为“A”和“B”,我将遍历文件夹“收件箱”,“A”和“B”,并从每个文件夹中获取相同的邮件;所以我可以保留一个标有“收件箱”,“A”和“B”的副本。

但是,getUID方法返回文件夹相对ID,因此相同的邮件可能在不同的文件夹中具有不同的ID,或者不同的邮件可能在不同的文件夹中具有相同的ID。在示例中。 “HellO”可能在“A”中显示为邮件1,在“B”中显示为邮件2。

是否有办法获取每封邮件的商店相对ID,而不受文件夹的影响?或者更好的方法来获取附加到单个邮件的标签?

2 个答案:

答案 0 :(得分:3)

gmail forums得到答案:有一个“message-id”标题,其中包含我正在寻找的值。

答案 1 :(得分:1)

我认为唯一的方法是使用您根据邮件头自己计算的哈希值。