我被要求在C#中编写Windows服务以定期监视电子邮件收件箱,并将收到的任何消息的详细信息插入到数据库表中.
我的直觉是通过POP3做到这一点,果然,谷歌搜索".NET POP3组件"会产生无数(好的,146,000)结果.
有没有人以前做过类似的事情,你能推荐一个不会破坏银行的最佳组件(最多几百美元)吗?
使用IMAP而不是POP3会有什么好处吗?
使用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(); Listuids = imap.Search(Flag.Unseen); foreach (long uid in uids) { IMail mail = new MailBuilder() .CreateFromEml(imap.GetMessageByUID(uid)); Console.WriteLine(mail.Subject); } imap.Close(); }
请注意,这是我创建的商业产品.
您可以在https://www.limilabs.com/mail下载它
我在我的应用程序BugTracker.NET中使用免费和开源的SharpMimeTools.它非常可靠:
http://anmar.eu.org/projects/sharpmimetools/
请参阅文件POP3Client.cs,POP3Main.cs和insert_bug.aspx