Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/272.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
C# 邮件套件未与Exchange帐户同步_C#_Mailkit - Fatal编程技术网

C# 邮件套件未与Exchange帐户同步

C# 邮件套件未与Exchange帐户同步,c#,mailkit,C#,Mailkit,我在使用IMAP通过MailKit与Exchange帐户同步时遇到一些问题。 我正在做一件事 Inbox.Fetch(0, -1, items); 获取收件箱中的所有邮件。此imapClient将永远不会关闭,并且有一个计时器,可以在每次关闭时执行Fetch命令。但是,当这个客户端打开并运行时,我似乎不会收到任何新收到的电子邮件(或者让它们延迟)。如果我关闭解决方案并重新启动,它将立即收到所有新邮件 我错过什么了吗?是否存在我错过的“刷新”方法?不幸的是,Microsoft Exchange存

我在使用IMAP通过MailKit与Exchange帐户同步时遇到一些问题。 我正在做一件事

Inbox.Fetch(0, -1, items);
获取收件箱中的所有邮件。此imapClient将永远不会关闭,并且有一个计时器,可以在每次关闭时执行Fetch命令。但是,当这个客户端打开并运行时,我似乎不会收到任何新收到的电子邮件(或者让它们延迟)。如果我关闭解决方案并重新启动,它将立即收到所有新邮件


我错过什么了吗?是否存在我错过的“刷新”方法?

不幸的是,Microsoft Exchange存在缺陷(我记得早在2000年初就发现了这一点,但显然这仍然是一个问题)

如果我没有记错,重新打开文件夹将导致Exchange将其新邮件同步到该文件夹中,然后您就可以获取这些邮件


希望对您有所帮助。

我已经对该文件夹执行了.Open()操作,导致出现问题。奇怪的是,我以只读方式打开它,如果我以读写方式打开它,该文件夹中的邮件数似乎是正确的?!这是Exchange的另一种wierd行为还是…?是的,只是另一种Exchange错误。有点离题,但关于MailKit中的MoveMail()方法,是否始终在源文件夹中将移动的邮件标记为“已删除”,或者仅当您从收件箱中移动邮件时才算?如果服务器支持move命令,它使用MOVE命令,该命令不会将邮件标记为\已删除。如果服务器支持UIDPLUS,那么它将复制消息,将它们标记为\Deleted,然后UID删除这些消息,这样您就永远不会知道服务器不支持移动(有效)。如果服务器两者都不支持,则在将邮件复制到目标文件夹后,它别无选择,只能将邮件保留在标记为\已删除的文件夹中。是,请检查ImapClient.Capabilities上设置的标志。