2014-05-15 13 views
7

IMAP üzerinden google uygulamalarına bağlanmak için MailKit (https://github.com/jstedfast/MailKit) kullanıyorum, ancak nasıl olsa tek bir mesajı silebilirim? (Çöp kutusuna taşınmak zorundayım, sadece gelen kutunun dışına çıkıyorum.MailKit gmail'den tek bir mesaj sil

Şimdiye kadar bağlandıkları, indirdikleri, mesaj gövdelerinden bağlantıları ayrıştıyorum. .!

Teşekkür

+0

yalnızca bir ileti indirmek gerekmediği halde, ben ([burada] toplu mesajlar silinmesinin bir dolu çalışma MailKit örneği var https://github.com/arthurspa/ DeleteEmailMessages). Tek bir mesajı silmek için benzerdir. –

cevap

14

IMAP sunucusundaki bir klasörden ileti silmek için, bu yapmanız gereken tek şey:

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

veya

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

Şimdi mesaj sunucuda \ Silindi olarak işaretlenmiştir.

Daha sonra arayarak silinen tüm öğelerin klasörü temizlemek edebilirsiniz: yapabilirsiniz

client.Inbox.Expunge(); 

yerine endekslerin UID'leri kullanıyor ve IMAP sunucusu UIDPLUS uzantısı (client.Capabilities kontrol edin) destekliyorsa böyle mesajların sadece seçilmiş birtakım din'i:

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