【问题标题】:Looking for a real-time IMAP notification of new Emails寻找新电子邮件的实时 IMAP 通知
【发布时间】:2010-10-19 09:13:31
【问题描述】:

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

有人知道有这个功能的 IMAP 库吗?或者有没有其他方法可以在不进行短期轮询的情况下立即通知新消息?

【问题讨论】:

    标签: c# email imap notifications instant


    【解决方案1】:

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

    【讨论】:

    • 使用 (var client = new ImapClient("imap.gmail.com", 993, "username", "password", AuthMethod.Login, true)) { var uids = client.Search(SearchCondition 。看不见()); var messages = client.GetMessages(uids); }
    【解决方案2】:

    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();
    }
    

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

    还可以查看我的blog for samples

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

    @Queops

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

    www.viruschief.com

    www.virustotal.com

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

    【讨论】:

    • 我尝试下载 Mail.dll 的安装程序,但我的 Norton Antivirus 立即表示这是某种病毒/威胁,并立即将其删除。建议谨慎。
    • “某种”?你能更精确一点吗?我已经使用这个组件很长时间了,从我的角度来看,一切都很好。如果我是对的,它也被大公司使用。
    【解决方案3】:

    你需要处理IMAP IDLE

    这将在新消息到达时通知您,而无需不断轮询(这很糟糕)。


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

    【讨论】:

      猜你喜欢
      • 2012-07-30
      • 2011-11-01
      • 2010-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-11
      相关资源
      最近更新 更多