2010-06-10 14 views
8

Python'un imaplib'ini kullanarak e-postayı gelen kutusundan çöp kutusuna taşımak kadar basit bir şey yapmaya çalışıyorum. Ancak, bazı problemlerim var ve bunları nasıl çözeceğimi bilmiyorum.Imaplib: Gmail'den bir e-posta nasıl silinir?

bağlantı sonra

ve sunucu içine giriş, ben POSTALAR posta kutusunu işaretleyin ve kimlikleri listesine bu şekilde olsun:

typ, ids = imap_object.search(None, 'INBOX') 
ids_list = ids[0].split() 

ı X, oradan bir kimliği almak varsayalım ve en bu e-posta varsayalım edelim bir konuşmanın parçasıdır. Ben

imap_object.fetch (X, '(RFC822)')[1] 

yaptığınızda beklediğim gibi ben sadece mesajı görebilirsiniz, ama ben

imap.store(X, '+FLAGS', r'(\Deleted)') 

yapınca bütün konuşma değil, sadece mesaj siler !. Ayrıca, tamamen e-postayı kaldırmak istemiyoruz, ben çöp sepetine göndermek istiyorum, bu yüzden denedim:

imap.copy(X, '[Gmail]/Papelera') 
imap.store(X, '+FLAGS', r'(\Deleted)') 
imap.expunge() 

ama kopya sadece mesaj çöp kutusuna ve bütün dizisini siler bundan sonra , bu yüzden e-postaları kaybediyorum!

QUESTION: Tüm ileti dizisini silmeden, imaplib kullanarak Gmail'deki bir e-postayı nasıl silebilirim?

+0

Herhangi bir cevaptan önce, silinmiş konuşmalarınızın hala görüntülenebilir olması mümkündür. Tüm Posta "klasörü (web arayüzü aracılığıyla). – tzot

cevap

2

Görüşmelerinizin gerçekten silinmediğini düşünüyorum: Varsayılan olarak, son klasördeki IMAP başına bir iletinin silinmesi, sohbeti arşivler. Ayarlar -> Yönlendirme ve POP/IMAP -> Bir mesaj silinen ve son görünür IMAP klasöründen silinmiş olarak işaretlendiğinde: