Estoy tratando de hacer algo tan simple como mover un correo electrónico de la bandeja de entrada a la papelera usando el imaplib de python. Sin embargo, estoy teniendo algunos problemas y no sé cómo resolverlos.Imaplib: cómo eliminar un correo electrónico de Gmail?
Después de conexión y una sesión en el servidor, selecciono el buzón bandeja de entrada y tengo la lista de identificadores de esta manera:
typ, ids = imap_object.search(None, 'INBOX')
ids_list = ids[0].split()
Supongamos que tomo una identificación a partir de ahí, X y supongamos que ese correo electrónico es parte de una conversación. Cuando hago
imap_object.fetch (X, '(RFC822)')[1]
puedo ver sólo el mensaje, como lo esperaba, pero cuando lo hago
imap.store(X, '+FLAGS', r'(\Deleted)')
se elimina toda la conversación, no sólo el mensaje !. Además, no quiero para eliminar por completo el correo electrónico, quiero enviarlo a la Papelera, por lo que he intentado:
imap.copy(X, '[Gmail]/Papelera')
imap.store(X, '+FLAGS', r'(\Deleted)')
imap.expunge()
pero solo se copia el mensaje a la Papelera, y después de que se elimina toda la conversación ¡Así que estoy perdiendo correos electrónicos!
PREGUNTA: ¿Cómo puedo borrar un correo electrónico de Gmail mediante imaplib, sin eliminar toda la conversación?
Antes de cualquier respuesta, es posible que sus conversaciones borradas todavía se puedan ver en el " Carpeta "Todo correo" (a través de la interfaz web). – tzot