如何在MailKit中将邮件标记为已读

40

我使用MailKit从一个Gmail账户中读取一些邮件。非常好用,但是当我的应用程序读取了一封邮件后,我希望将该邮件标记为已读,并保存该状态到Gmail。MailKit能否实现这个功能?目前我还没有找到相关的信息。

1个回答

71

使用 IMAP 协议将消息标记为已读的方法是在消息上设置 \Seen 标志。

要使用 MailKit 进行此操作,首先需要知道要在哪些消息上设置 \Seen 标志, 即索引或 UID。获取这些信息后,您将要调用 ImapFolder 上的 AddFlags() 方法之一。 例如:

folder.AddFlags (uids, MessageFlags.Seen, true);

要将消息标记为未读,您需要 移除 \Seen 标志,操作如下:

folder.RemoveFlags (uids, MessageFlags.Seen, true);

RemoveFlags函数似乎没有任何效果。您能否修改您的答案,包括与服务器的连接? - Amged Rustom
9
请确保以 FolderAccess.ReadWrite 模式打开文件夹。 - jstedfast
谢谢。现在完美地工作了。 - Amged Rustom
有没有办法只使用 MimeMessage 而不知道它在哪个文件夹中就能完成这个操作? - Powercoder
不,如果不知道文件夹,就无法设置标志。 - jstedfast

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接