我有一个Web应用程序,需要基于服务器的组件定期访问POP3电子邮箱并检索电子邮件。然后,该服务需要处理涉及以下内容的电子邮件:
最好的方法是什么?我真的不想从头开始编写POP3客户端,但我需要能够自定义电子邮件的处理。理想情况下,我可以插入一些为我进行访问和检索的组件,返回附件数组,正文文本,主题行等,以备我处理......
[更新:评论]
好的,所以我花了相当多的时间研究(主要是免费的).NET POP3库,所以我想我会简要回顾下面提到的一些以及其他一些:
在免费图书馆中,我会选择C#Mail或OpenPOP。
我查看了一些商业图书馆:Chillkat,Rebex,RemObjects,JMail.net。基于公司的功能,价格和印象,我可能会选择Rebex,如果我的要求发生变化,或者我遇到C#Mail或OpenPOP的生产问题,可能会在将来使用。
如果有人需要它,这是我用C#Mail和OpenPOP启用SSL的替代SslStream构造函数:
SslStream stream = new SslStream(clientSocket.GetStream(), false,
delegate(object sender, X509Certificate cert,
X509Chain chain, SslPolicyErrors errors) { return true; });
答案 0 :(得分:28)
我是OpenPop.NET的主要开发者之一。我刚刚对这篇评论感到失望,并且不得不对OpenPop.NET的当前状态发表一些评论,因为该评论似乎已经过时了。
OpenPop.NET重新进入积极开发阶段。 SSL已经推出半年了。该项目进行了重大的重构,现在更稳定,更易于使用。当我接手这个项目时,它有很多错误,到目前为止我目前都不知道。已经实现了许多额外的功能,主要是在MIME解析器部分。该项目由单元测试支持,每次发现错误时,都会创建一个单元测试,以在修复之前显示此错误。现在存在一个带有示例的accompanying website。还有其他更新,但我不想全部提及。
此外,OpenPop.NET的许可证已从LGPL更改为Public Domain(也就是说,没有限制)。我认为这是商业用户的一项重大改进。
答案 1 :(得分:7)
我最近为一个项目实施了OpenPop,并对此感到满意。它完成它在锡上的说法。 (它是免费的。)
答案 2 :(得分:6)
修改并上传了SslStream类的构造函数。 推荐版本没有问题可以使用。
答案 3 :(得分:2)
C# Mail可在Codeplex上使用,并且非常易于使用。
答案 4 :(得分:2)
您可能希望在排名中加入Mail.dll .NET mail component。 它具有SSL支持,Unicode和多国电子邮件支持:
using(Pop3 pop3 = new Pop3())
{
pop3.Connect("mail.host.com"); // Connect to server
pop3.Login("user", "password"); // Login
foreach(string uid in pop3.GetAll())
{
IMail email = new MailBuilder()
.CreateFromEml(pop3.GetMessageByUID(uid));
Console.WriteLine(email.Subject);
}
pop3.Close(true);
}
也支持IMAP协议。
请注意,这是我创建的商业产品。
您可以在此处下载:http://www.lesnikowski.com/mail
答案 5 :(得分:2)
新选项(截至2014年)是来自Xamarin的MailKit,可在MIT许可下获得。它比OpenPOP.NET更快地解析来自磁盘25x的消息。它包括对IMAP,POP3和SMTP的支持,并且似乎非常快速和强大。
答案 6 :(得分:1)
在codeproject.com上有几个POP3客户端实现。我没有对它们进行评估,但也许你可以找到你需要的东西。如果没有,我可以说POP3是一个非常简单的协议。如果您知道4-5个命令,甚至可以使用telnet读取POP3框。
您实际上只需要this命令,也可能需要对附件进行一些base64解码。就是这样。
答案 7 :(得分:1)
Jmail.NET。不要再看了。请注意,免费版本不包括POP3。您需要使用标准版(或更多版)。别担心,这不贵。
答案 8 :(得分:1)
在http://ifdefined.com/bugtrackernet.html处查看我的开源应用程序BugTracker.NET中的POP3集成。所有免费和开源。最难的部分,即mime解析,由SharpMimeTools在http://anmar.eu.org/projects/sharpmimetools/
在BugTracker.NET中完成显示我如何使用POP3和MIME逻辑的重要文件是POP3Client.cs和insert_bug.aspx。
答案 9 :(得分:1)
DasBlog使用一个好的(和免费的) - 抓住源包。我已经习惯了(但我不记得是谁写的,我不在我的笔记本电脑上 - 我觉得Pavel L?)。它不是完美的,它不会做SSL,但它的效果很好。
答案 10 :(得分:1)
我制作了自己的Mime解析器并将其添加到CodePlex中,因为当涉及奇怪的编码和奇怪的附件组合时,我一直遇到其他未处理的异常。 pop3客户端实现很粗糙,只是出于测试目的,但处理正常。 Mime解析器部分填充标准的MailMessage对象,以便您可以轻松转发它。我可以根据要求扩展/改进它,但是现在它可以满足我的需求。请随意查看。
答案 11 :(得分:1)
Lumisoft是开源的,包括POP客户端(以及其他内容)。它已存在多年,非常稳定。
答案 12 :(得分:1)
如果你需要SSL来访问gmail ..这里是对OpenPOP.net库的一些修改,它提供了SSL支持。
OpenPop.net modified to include SSL support for accessing Gmail
答案 13 :(得分:1)
因为我必须自动执行某些电子邮件处理。我参加了OpenPop.net 我正在搜索如何使用此库转发mailmessages并遇到这个惊人的功能:http://hpop.sourceforge.net/documentation/OpenPop~OpenPop.Mime.Message.ToMailMessage.html
总结一下,我选择了 OpenPop.Net 并推荐它!
最好的问候, JP
答案 14 :(得分:0)
如果你不介意支付一个组件,我们过去在chilkat上取得了很大的成功。只需几百美元就可以获得一个充满善良的图书馆。