【发布时间】:2021-01-19 16:31:42
【问题描述】:
我正在使用GemBox.Email,并且正在从我的收件箱中检索未读电子邮件,如下所示:
using (var imap = new ImapClient("imap.gmail.com"))
{
imap.Connect();
imap.Authenticate("username", "password");
imap.SelectInbox();
IEnumerable<string> unreadUids = imap.ListMessages()
.Where(info => !info.Flags.Contains(ImapMessageFlags.Seen))
.Select(info => info.Uid);
foreach (string uid in unreadUids)
{
MailMessage unreadEmail = imap.GetMessage(uid);
unreadEmail.Save(uid + ".eml");
}
}
代码来自Receive 示例,但问题是在检索它们后,它们最终在我的收件箱中被标记为已读。
如何防止这种情况发生?
我想用ImapClient 下载它们,并在电子邮件服务器上将它们保留为未读。
【问题讨论】:
-
我不具体了解这个库,但应该有一种方法可以传递 PEEK 标志,这样当您执行 GetMessage 时它不会将其标记为已读。
-
令人惊讶的是,据我从文档中得知,这个库似乎没有实现用于获取消息的 PEEK 标志。也许是功能请求?
标签: c# email imap gembox-email