建议.NET组件访问电子邮件收件箱

Ian*_*son 16 .net email pop3 imap

我被要求在C#中编写Windows服务以定期监视电子邮件收件箱,并将收到的任何消息的详细信息插入到数据库表中.

我的直觉是通过POP3做到这一点,果然,谷歌搜索".NET POP3组件"会产生无数(好的,146,000)结果.

有没有人以前做过类似的事情,你能推荐一个不会破坏银行的最佳组件(最多几百美元)吗?

使用IMAP而不是POP3会有什么好处吗?

Paw*_*ski 7

使用IMAP协议,您可以访问子文件夹,并设置消息状态(看到/看不见),您也可以使用IDLE功能进行即时通知.

Mail.dll包括支持SSL的POP3,IMAP,SMTP组件和强大的MIME解析器:

using(Imap imap = new Imap())
{
    imap.Connect("imap.server.com");    // or ConnectSSL for SSL
    imap.Login("user", "password");

    imap.SelectInbox();
    List<long> uids = imap.Search(Flag.Unseen);
    foreach (long uid in uids)
    {
        IMail mail = new MailBuilder()
            .CreateFromEml(imap.GetMessageByUID(uid));
        Console.WriteLine(mail.Subject);
    }
    imap.Close();
}
Run Code Online (Sandbox Code Playgroud)

请注意,这是我创建的商业产品.

您可以在https://www.limilabs.com/mail下载它


Cor*_*ger 6

我在我的应用程序BugTracker.NET中使用免费和开源的SharpMimeTools.它非常可靠:

http://anmar.eu.org/projects/sharpmimetools/

请参阅文件POP3Client.cs,POP3Main.cs和insert_bug.aspx


Kib*_*bee 4

我推荐chilkat。他们有相当稳定的组件,单个开发人员可以以低至 99 美元的价格获得他们的电子邮件组件。就我个人而言,我认为使用整套组件更划算,因为它只需 289 美元,并且附带许多有用的组件。我与他们没有任何关系,尽管我听起来可能是这样。

  • 异常确实“感觉”.net,但值得评论的是 Google 代码指南使用错误代码和断言而不是异常。他们还在文档中明确表示,他们并不真正认为使用异常是“错误的”,但他们确实提供了一些不这样做的充分理由。 (3认同)