2015-07-15 3 views
4

J'utilise MailKit/MimeKit 1.2.7 (dernière version de NuGet).MimeKit: Comment supprimer un email par MessageId?

La suppression d'un e-mail avec le ImapClient est assez facile ...

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

... si vous connaissez les e-mails uniqueID ou son index.

Dans mon cas, je ne connais ni l'un ni l'autre. Tout ce que j'ai, c'est le message lui-même (MimeMessage) et son MessageId. J'espérais que MessageId == UniqueId, mais évidemment ce n'est pas le cas.

Est-ce que j'ai la chance de supprimer un email en ayant juste le MimeMessage/MessageId correspondant?

Répondre

5

Vous pouvez essayer de faire quelque chose comme ceci:

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

Idéalement, cependant, vous garderait la trace de la UniqueId que vous avez utilisé pour aller chercher le message afin que vous pouvez simplement utiliser cette valeur.

+0

Excellent! Fonctionne très bien. Merci beaucoup. – Ingmar