MimeKit:如何通过 MessageId 删除电子邮件?

MimeKit: How to delete an email by MessageId?

我正在使用 MailKit/MimeKit 1.2.7(最新的 NuGet 版本)。

使用 ImapClient 删除电子邮件非常简单...

client.Inbox.AddFlags(uniqueId, MessageFlags.Deleted, silent: true);

...如果您知道电子邮件的 UniqueId 或其索引。

就我而言,我两者都不认识。我所拥有的只是消息本身 (MimeMessage) 及其 MessageId。

我希望 MessageId == UniqueId,但显然不是这样。

我是否有机会通过相应的 MimeMessage/MessageId 删除电子邮件?

您可以尝试这样做:

var uids = folder.Search (SearchQuery.HeaderContains ("Message-Id", message.MessageId));
folder.AddFlags (uids, MessageFlags.Deleted, silent: true);

不过,理想情况下,您会跟踪用于获取消息的 UniqueId,以便您可以只使用该值。