查询的时候不能使用自定义flag当作查询条件


#1

ImapClient client = new ImapClient(“imap-mail.outlook.com”, 993, “account”, “password”);
ImapQueryBuilder builder = new ImapQueryBuilder();
builder.hasNoFlags(ImapMessageFlags.keyword(“SEEN”));
ImapMessageInfoCollection imapMessageInfos = client.listMessages(query);
当使用自定义flag builder.hasNoFlags(ImapMessageFlags.keyword(“SEEN”));
出现异常:Exception in thread “main” ImapException: AE_1_1_0006 BAD Command Argument Error. 11
版本:

com.aspose
aspose-email
18.2
jdk16


#2

@Goran_Zhou,

我们能够使用ImapMessageFlags指定的自定义属性面对问题,并将其记录为EMAILJAVA-34355以供进一步调查。 我们会在这方面提供更多信息。


#3

@kashif.iqbal
谢谢。
我们的需求是:下载过的邮件,标记为SEEN。然后下次查询时过滤掉已经下载过的邮件,避免重复下载。
请问有没有其他的方法可以替代这个方法呢?


#4

@Goran_Zhou,

是的,您可以使用以下两种替代方法之一来避免重复发送消息。 请在您的最后尝试这些内容,并告诉我们您是否有任何进一步的查询。

Sample Code

client.listMessages(builder.hasNoFlags(ImapMessageFlags.isRead()));

or

client.listMessages(builder.hasFlags(ImapMessageFlags.getRecent()));