Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Office365 IMAP有时无法获取新电子邮件_Python_Office365_Imap_Imapclient - Fatal编程技术网

Python Office365 IMAP有时无法获取新电子邮件

Python Office365 IMAP有时无法获取新电子邮件,python,office365,imap,imapclient,Python,Office365,Imap,Imapclient,我连接到outlook.office365.com,通过库IMAPClient(Python)同步电子邮件。通过IDLE mechanizm,我接收服务器上的更改,例如文件夹收件箱中的新电子邮件。在此之后,我获取UID为{last_synced_UID}::*的邮件-这将提供上次同步之后的所有邮件(UID始终递增) 此流程正常工作,但IMAP服务器(outlook.office365.com)不返回新邮件,但已同步。运行完全同步有时有效,但并不总是有效——我的意思是在日期之后搜索邮件并通过UID

我连接到outlook.office365.com,通过库IMAPClient(Python)同步电子邮件。通过IDLE mechanizm,我接收服务器上的更改,例如文件夹收件箱中的新电子邮件。在此之后,我获取UID为{last_synced_UID}::*的邮件-这将提供上次同步之后的所有邮件(UID始终递增)

此流程正常工作,但IMAP服务器(outlook.office365.com)不返回新邮件,但已同步。运行完全同步有时有效,但并不总是有效——我的意思是在日期之后搜索邮件并通过UID获取

在这种情况下,我手动将邮件从收件箱移动到其他文件夹,然后再次移动到收件箱,这始终有效-之后,我的脚本检测到收件箱中有新邮件,并使用UID{last_synced_UID}获取:*

看起来Office365有时会出现通过UID获取的问题。 相同的邮件在其他邮件客户端(如thunderbird)中可见,因此可能存在一些解决方法,或者是IMAPClient/imaplib中存在缺陷

下面是上次同步uid为1619的监控文件夹的日志:

  • 空闲响应:[(10,b'RECENT'),(618,b'EXISTS')]
  • 开始获取UID 1620:*
  • 取回UID为1619、序列号为617的返回邮件
  • 上次同步的uid 1619未更改

我将回答我自己的问题-在IMAP连接上多次选择同一文件夹可能会产生此问题。

您好。。。。只是一个建议。。。如果可能,请使用microsoft graph api获取outlook邮件信息。因为它是一个REST实现,所以它们将更容易实现,而且您有很多文档供您提出建议:)