J'essaie d'écrire un programme qui surveille une boîte aux lettres IMAP et copie automatiquement chaque nouveau message entrant dans un dossier "Archive". J'utilise imaplib2 qui implémente la commande IDLE. Voici mon programme de base:Trouver de nouveaux messages ajoutés à une boîte aux lettres imap depuis la dernière vérification avec python imaplib2?
M = imaplib2.IMAP4("mail.me.com")
M.login(username,password)
lst = M.list()
assert lst[0]=='OK'
for mbx in lst[1]:
print "Mailboxes:",mbx
def process(m):
print "m=",m
res = M.recent()
print res
M.select('INBOX')
M.examine(mailbox='INBOX',callback=process)
while True:
print "Calling idle..."
M.idle()
print "back from idle"
M.close()
M.logout()
Il imprime les boîtes aux lettres process() correctement et fonctionne lorsque le premier changement se produit à la boîte aux lettres. Mais la réponse de recent() n'a pas de sens pour moi, et après le premier message je n'ai jamais reçu d'autres notifications.
Quelqu'un sait-il comment faire?
Merci. Mais le code ne se déclenche qu'à chaque fois qu'un message est renvoyé; comment puis-je obtenir l'UID du message pour que je puisse faire quelque chose avec? – vy32
Ajouté quelque chose que vous pouvez essayer. – gimel
Merci. Je suis en train de mettre en place une application maintenant! – vy32