寻找新电子邮件的实时IMAP通知

我正在寻找一种方法来监控GMail收件箱中的新电子邮件。 但是,我想避免每隔几分钟检查一次,我正在寻找某种实时通知。 我注意到Outlook(以及其他支持IMAP的客户端)会在有新电子邮件时立即显示,但遗憾的是所有.NET IMAP库似乎都缺少此function。

有谁知道有这个function的IMAP库? 或者是否有另一种方法可以在不进行短期轮询的情况下立即通知新消息?

你需要处理IMAP IDLE 。

这将在新消息到达时通知您,而不进行常量轮询(这是不好的)。


一个非常好的商业.NET IMAP库是MailBee.Net 。 我曾经将它用于一个小项目,它似乎处理得很好,并且相当容易使用。 可能还有其他人 – 只需在您的库中搜索发送IDLE命令或IDLE命令处理,您就可能找到一些东西。

Mail.dll支持IDLE。 这是简化的示例:

using (Imap client = new Imap()) { client.ConnectSSL("imap.server.com"); client.Login("user@server.com", "password"); FolderStatus folderStatus = client.SelectInbox(); Console.WriteLine("Total message count: {0}", folderStatus.MessageCount); while(true) { FolderStatus currentStatus = client.Idle(); Console.WriteLine("Total message count: {0}", currentStatus.MessageCount); foreach(long uid in client.SearchFlag(Flag.Unseen)) { IMail email = new MailBuilder().CreateFromEml( client.GetHeadersByUID(uid)); Console.WriteLine(email.Subject); } } client.Close(); } 

您可以在http://www.lesnikowski.com/mail/下载Mail.dll 。

另请查看我的博客样本 。

请注意,Mail.dll是我创建的商业产品。

@Queops

以下是来自2个在线防病毒扫描程序的报告:

http://www.viruschief.com

http://www.virustotal.com

请注意,VirusTotal正在使用Symantec扫描程序。

试用免费的.NET库来访问IMAP服务器S22.Imap ,支持IDLE