Ae.Net.Mail - IMAP - 仅获取未见过的邮件

Sir*_*tec 2 c# asp.net gmail-imap

我有一个使用 AE.Net.Mail IMAP 客户端和 G 邮件的 Windows 服务。该服务每 x 分钟运行一次,检索收件箱消息,应用一些业务逻辑,并将它们标记为已删除。这一切都有效。

但是,Gmail 将它们保留在收件箱中,以便后续调用再次获取它们。我可以通过查看“已查看”或“已删除”标志来跳过它们,但我宁愿根本不获取它们。除非有人经常进入并清理收件箱,否则获取的数据将会呈指数级增长。

我尝试过 Gmail 删除选项,但似乎没有任何效果。

小智 5

我知道这是一个有点旧的帖子,但以防万一有人正在寻找一种方法来做到这一点可以尝试:

ImapClient ic = new ImapClient("imap.gmail.com", "name@gmail.com", "pass", AuthMethods.Login, 993, true);
var mailMessage = ic.SearchMessages(SearchCondition.Unseen(), false, true).ToList();
Run Code Online (Sandbox Code Playgroud)

现在您可以循环遍历 mailMessage 来查找未读电子邮件。