如何使用Python imaplib为IMAP(Gmail)启用推送通知?

时间:2009-01-07 17:13:33

标签: python gmail imap

每当我想查看是否有新邮件时,是否有办法使用imaplib监控gmail帐户而不轮询gmail。或者换句话说,我只是想要通知脚本一条新消息,以便我可以立即处理它而不是轮询之间的任何延迟时间。

我看到IMAP协议使用IDLE命令支持这一点,但我在imaplib文档中看不到任何记录,所以任何帮助都会很棒!

4 个答案:

答案 0 :(得分:13)

imaplib中没有这样做,AFAIK(disclamer:我对Python知之甚少),然而,似乎有人为Python实现了IDLE扩展,它具有与imaplib相同的接口(你可以换掉现有代码没有改变,显然):

https://github.com/imaplib2/imaplib2

答案 1 :(得分:6)

结帐ProcImap。它是libimap和libimap2之上的一个更抽象的框架,为处理IMAP服务提供了一个很好的解决方案。看起来就像你正在寻找的东西,对我来说也是如此。我对你有同样的问题,刚刚找到了ProcImap。要亲自试试。

答案 2 :(得分:2)

此链接显示了使用IMAP IDLE的示例:http://blog.timstoop.nl/2009/03/11/python-imap-idle-with-imaplib2/

它使用与casperOne的答案(imaplib2)链接的相同库。

答案 3 :(得分:2)

patch以同步方式实现bugs.python.org命令时提出简单的RFC 2177 IMAP IDLE(等待超过1个IMAP服务器,您必须使用线程或其他并行执行方式) 。它使用stdlib select在套接字上等待包括超时。此补丁将eventually添加到stdlib,but tests have to be written firstIDLE命令是need用于gmail IMAP推送通知的命令。 希望,这会有所帮助:)