Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/258.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# 在建立连接后未找到任何接收到的新消息_C#_Windows Services_Openpop - Fatal编程技术网

C# 在建立连接后未找到任何接收到的新消息

C# 在建立连接后未找到任何接收到的新消息,c#,windows-services,openpop,C#,Windows Services,Openpop,该场景是Windows服务使用OpenPOP连接到outlook.com或gmail.com POP3帐户。如果存在任何现有电子邮件,它将查找这些电子邮件(即client.getMessageCount()返回大于零的值) 该服务保持连接打开,并重新检查是否有新消息 问题是,如果我在服务连接后向该帐户发送电子邮件,则getMessageCount()始终返回零,直到服务自动重新循环pop连接 我希望有人也有同样的问题 我无法通过更频繁的pop双连接/重新连接来解决此问题,因为某些提供商(如out

该场景是Windows服务使用OpenPOP连接到outlook.com或gmail.com POP3帐户。如果存在任何现有电子邮件,它将查找这些电子邮件(即
client.getMessageCount()
返回大于零的值)

该服务保持连接打开,并重新检查是否有新消息

问题是,如果我在服务连接后向该帐户发送电子邮件,则
getMessageCount()
始终返回零,直到服务自动重新循环pop连接

我希望有人也有同样的问题


我无法通过更频繁的pop双连接/重新连接来解决此问题,因为某些提供商(如outlook.com)对连接之间的时间有限制。

POP3规范提到,当客户端打开邮箱时,邮箱被锁定。因此,无法显示任何消息

想想这个场景:大多数服务器为新消息分配一个较低的消息编号。您刚刚获取了所有邮件号码:

1 - Foo message
2 - Bar message
您现在想要删除Foo消息,但服务器会将邮件内容更新为:

1 - Baz message
2 - Foo message
3 - Bar message
您发送命令dele1,现在已将Baz而非Foo消息标记为要删除。POP3协议是在internet是一个稀疏资源,并且您并不总是连接的情况下开发的。如果您想对邮件发送进行实时更新,则应使用更新得多的IMAP协议

如果您继续使用POP3,则必须断开连接并再次连接才能进行更新。请注意,大多数服务器不允许客户端以快速方式继续连接/断开连接,如果您连接太频繁,它们只会拒绝您的身份验证


还要注意,Gmail有一个奇怪的POP3实现。请参见

谢谢福恩斯,我已经从您之前的帖子中阅读了有关Gmail的详细信息。我通过断开/重新连接gmail解决了这个问题,但outlook.com不允许这样做。他们有更严格的政策。谢谢你的帮助。