2014-05-15 1 views
7

Ich verwende MailKit (https://github.com/jstedfast/MailKit), um über imap eine Verbindung zu Google Apps herzustellen. Wie kann ich eine einzelne Nachricht löschen? (Ich bin in Ordnung, um es in den Papierkorb verschoben zu haben, nur brauchen es aus dem Posteingang.MailKit Lösche einzelne Nachricht von Google Mail

Bisher habe ich es verbunden, Herunterladen, Parsen von Links von Nachrichtentexten. Ich brauche nur diese eine letzte Aktion zu haben, was ich brauche .!

Dank

+0

Obwohl Sie nur eine Nachricht herunterladen müssen, habe ich ein voll funktionsfähiges MailKit Beispiel für das Löschen Massen-Nachrichten [hier] (https://github.com/arthurspa/ DeleteEmailMessages). Das Löschen einer einzelnen Nachricht ist ähnlich. –

Antwort

14

um eine Nachricht aus einem Ordner auf dem IMAP-Server zu löschen, ist dies alles, was Sie tun müssen:

client.Inbox.AddFlags (new int[] { index }, MessageFlags.Deleted); 

oder

client.Inbox.AddFlags (new UniqueId[] { uid }, MessageFlags.Deleted); 

Jetzt ist die Nachricht als \ auf dem Server gelöscht markiert.

Anschließend können Sie den Ordner aller gelöschten Objekte bereinigen durch den Aufruf:

client.Inbox.Expunge(); 

Wenn Sie UIDs anstelle von Indizes und der IMAP-Server unterstützt die UIDPLUS Erweiterung (überprüfen Sie die client.Capabilities) verwenden, können Sie tilgen nur eine ausgewählte Gruppe von Nachrichten wie folgt aus:

if (client.Capabilities.HasFlag (ImapCapabilities.UidPlus)) 
    client.Inbox.Expunge (new UniqueId[] { uid });