2016-11-19 5 views
0

J'ai étudié de nombreuses questions et réponses ici et de ce que je peux voir mon code est correct. Pour une raison quelconque, le mail que j'ai sélectionné n'est pas supprimé.Message ne pas supprimer avec m.expunge

Mon code est:

m = imaplib.IMAP4_SSL("imap-mail.outlook.com") 
m.login("MY_EMAIL","MY_PWORD") 
m.select("Sent") 
resp, data = m.uid("search", None, "ALL") 
uid = data[0].split()[-1] 

#Can also get message content with lines 
# resp,data = m.uid('fetch',uid,"(BODY[HEADER])") 
# print(data) 

m.store(uid, "+FLAGS", "\\Deleted")    #Works fine to here 
m.expunge()          #This doesn't delete message 
m.close() 
m.logout() 

Si je change la ligne m.expunge() à print(m.expunge()) je reçois le tuple

('OK', [Aucun])

Le message est toujours dans la boîte aux lettres même avec la réponse "OK". Je ne suis pas sûr pourquoi cela arrive

Répondre

0

Vous utilisez UIDs pour identifier les messages, vous devez également utiliser les commandes UID pour changer le marqueur \ Deleted:

m.uid('STORE' uid, "+FLAGS", "\\Deleted") 

Vous essayez actuellement de régler la drapeau supprimé sur le numéro de séquence de message avec le même UID, qui n'existe probablement pas, ou fait référence à un message complètement différent.