Comment activer la notification push pour IMAP (Gmail) à l'aide de Python imaplib?

StackOverflow https://stackoverflow.com/questions/421178

  •  05-07-2019
  •  | 
  •  

Question

Existe-t-il un moyen de surveiller un compte Gmail en utilisant imaplib sans interroger gmail à chaque fois que je veux savoir s'il y a de nouveaux messages? Ou, en d'autres termes, je souhaite simplement que le script soit averti d'un nouveau message afin que je puisse le traiter immédiatement au lieu de tout délai entre les sondages.

Je vois que le protocole IMAP prend en charge cela avec la commande IDLE, mais je ne vois rien qui soit documenté dans les documents imaplib, donc toute aide à cet égard serait formidable!

Était-ce utile?

La solution

Rien dans imaplib ne le fait, AFAIK (disclamer: je sais très peu de choses sur Python), cependant, il semble que quelqu'un ait implémenté une extension IDLE pour Python qui possède la même interface que imaplib remplacez sans modification du code existant, apparemment):

https://github.com/imaplib2/imaplib2

Autres conseils

Découvrez ProcImap . Il s’agit d’un framework plus abstrait, au-dessus de libimap et libimap2, qui offre une solution intéressante pour gérer les services IMAP. On dirait tout ce que vous recherchez, et pour moi aussi. J'ai raison d'avoir le même problème avec vous et je viens de trouver ProcImap. Je vais l'essayer moi-même.

Ce lien présente un exemple d'utilisation d'IMAP IDLE: http://blog.timstoop.nl/2009/03/11/python-imap-idle-with-imaplib2/

Il utilise la même bibliothèque que celle liée à la réponse de casperOne (imaplib2).

Un patch simple est proposé à l'adresse bugs.python.org lors de la mise en oeuvre de la RFC 2177 IMAP IDLE de manière synchrone (pour attendre plus d’un serveur IMAP, vous devez utiliser des threads ou d’autres moyens d’exécution parallèle). Il utilise stdlib select pour attendre le socket, y compris le délai d'attente. Ce correctif sera éventuellement ajouté à stdlib, mais les tests doivent d'abord être écrits . La commande IDLE correspond à ce que vous besoin pour la notification push IMAP gmail. J'espère que cela vous aidera:)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top