IMAP命令的等效java代码

时间:2017-05-01 10:12:05

标签: javamail imap

我们正在使用Godaddy电子邮件服务器。我们正在尝试使用IMAP协议获取电子邮件。以下是我的IMAP命令示例

a select inbox
a UID SEARCH FROM "user1@server.com"

以上命令的结果正好如下

 * SEARCH 501 505 342 229 191
a OK SEARCH done.

如果我为上述命令编写等效的Java代码,我会得到空的结果。以下是Java代码。

IMAPFolder inbox = store.getFolder("INBOX");
SearchTerm fromTerm = new FromTerm(new InternetAddress("user1@server.com"));
Message[] messages = inbox.search(fromTerm);

为上述Java代码生成的IMAP命令是

a SEARCH FROM user1@server.com ALL

但上面java生成的命令中缺少UID,所以我得到空结果。如何在使用Java时包含UID

由于

1 个答案:

答案 0 :(得分:0)

SEARCH命令中的UID标记表示应返回UID而不是消息序列号。由于JavaMail主要用于消息序列号,因此它不支持UID SEARCH。它使用返回的消息序列号映射到相应的Message对象。尽管如此,消息应该“找到”,而不管它们的UID或它们的消息序列号是否被返回。如果服务器仅返回UID SEARCH的结果,则服务器已损坏,您应该将此服务器错误报告给GoDaddy。