我正在使用MailKit(https://github.com/jstedfast/MailKit)通过imap连接到谷歌应用程序,我怎么能删除一条消息呢? (我可以将它移到垃圾箱,只需将其从收件箱中取出。
到目前为止,我已将其连接,下载,解析来自邮件正文的链接。我只需要最后一个动作来获得我需要的东西。
谢谢!
答案 0 :(得分:16)
要从IMAP服务器上的文件夹中删除邮件,您只需执行以下操作:
client.Inbox.AddFlags (new int[] { index }, MessageFlags.Deleted);
或
client.Inbox.AddFlags (new UniqueId[] { uid }, MessageFlags.Deleted);
现在,该消息在服务器上标记为\ Deleted。
然后,您可以通过调用以下方式清除所有已删除项目的文件夹:
client.Inbox.Expunge ();
如果您使用UID而不是索引并且IMAP服务器支持UIDPLUS扩展(检查client.Capabilities),您可以删除一组选定的消息,如下所示:
if (client.Capabilities.HasFlag (ImapCapabilities.UidPlus))
client.Inbox.Expunge (new UniqueId[] { uid });