有没有一种方法可以使用 imaplib 监控 gmail 帐户,而无需每次我想查看是否有新邮件时轮询 gmail。或者换句话说,我只想通知脚本有新消息,以便我可以立即处理它,而不是轮询之间的任何滞后时间。
我看到 IMAP 协议通过 IDLE 命令支持这一点,但我在 imaplib 文档中看不到任何与它相关的文档,因此对此的任何帮助都会很棒!
imaplib 中没有任何东西可以做到这一点,AFAIK(免责声明:我对 Python 知之甚少),但是,似乎有人已经为 Python 实现了一个 IDLE 扩展,它具有与 imaplib 相同的接口(你可以用显然,对现有代码没有任何更改):
查看ProcImap。它是在 libimap 和 libimap2 之上的一个更抽象的框架,为处理 IMAP 服务提供了一个很好的解决方案。看起来就像你正在寻找的东西,对我来说也是如此。我对你有同样的问题,刚刚找到了 ProcImap。我自己试试吧。
此链接显示了使用 IMAP IDLE 的示例:http: //blog.timstoop.nl/2009/03/11/python-imap-idle-with-imaplib2/
它使用与 casperOne 的答案(imaplib2)中链接的相同库。