Intento eliminar el mensaje de la carpeta de la bandeja de entrada y todo está bien, pero cuando cambié a la carpeta All Mail, la eliminación no funciona. expunge()
método devuelve ('OK', [None])
y el mensaje no se ha eliminado:Problema al eliminar correos en gmail usando 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])
He tratado su enfoque, pero cuando elimino un mensaje, el mensaje tendrá una etiqueta INBOX, mientras que si eliminamos de gmail, el mensaje no tendrá ninguna etiqueta. –
Sé que este es un hilo muy viejo, pero para ayudar a cualquier otra persona con el problema anterior de Rahul, solo necesita quitar primero la "etiqueta de la bandeja de entrada" antes de agregar la etiqueta de la papelera. es decir 'imap.store (num, '-X-GM-LABELS', '\\ Inbox')' – Shogan