Ich versuche, die Nachricht aus dem Posteingang Ordner und alles in Ordnung zu entfernen, aber wenn ich in den Ordner "Alle Mail" wechselte, funktioniert das Entfernen nicht. expunge()
Methode gibt ('OK', [None])
und Nachricht nicht entfernt wurde:Problem beim Löschen von E-Mails in Google Mail mit Imaplib
>>>import imaplib
>>>server = imaplib.IMAP4_SSL('imap.gmail.com','993')
>>>server.login('[email protected]','Password')
>>>server.select('inbox')
>>>for i in server.search(None,'all')[1][0].split():
... print i+"\n"+server.fetch(i,'(BODY[HEADER.FIELDS (Subject)])')[1][0][1]
...
# that how i know what UID hame my message? I select by subject
#....
#28
#Subject: 1 Question Has 1 Answer - Stack Overflow
#
#
#29
#Subject: 2222222222
#...
>>>server.store(29,'+FLAGS','\\Deleted')
#('OK', ['29 (FLAGS (\\Seen \\Deleted))'])
>>>server.expunge()
#('OK', ['29'])
>>> server.select('[Gmail]/All Mail')
('OK', ['47'])
>>> for i in server.search(None,'all')[1][0].split():
... print i+"\n"+server.fetch(i,'(BODY[HEADER.FIELDS (Subject)])')[1][0][1]
...
#....
#
#46
#Subject: 2222222222
#
#
#47
#Subject: 3333333333333333
#
#....
>>> server.store(47,'+FLAGS','\\Deleted')
('OK', ['47 (FLAGS (\\Seen \\Deleted))'])
>>> server.expunge()
('OK', [None])
ich versucht habe, Ihr Ansatz, aber wenn ich eine Nachricht lösche, wird die Nachricht ein INBOX-Label haben, während, wenn wir aus Google Mail selbst löschen, die Nachricht kein Label haben wird. –
Ich weiß, dass dies ein wirklich alter Thread ist, aber um anderen mit Rahuls Problem zu helfen, müssen Sie zuerst das "Inbox Label" entfernen, bevor Sie das Trash Label hinzufügen. d. h. 'imap.store (num, '-X-GM-LABELS', '\\ Inbox')' – Shogan