我有一个Web应用程序,需要基于服务器的组件定期访问POP3电子邮箱和检索电子邮件.然后该服务需要处理涉及以下内容的电子邮件:
根据某些业务规则验证电子邮件(它是否包含主题行中的有效引用,用户发送邮件等)
分析并保存磁盘的所有附件
获取电子邮件正文和附件详细信息,并在数据库中创建新项目
或者更新引用与传入电子邮件主题行匹配的现有项目
解决这个问题的最佳方法是什么?我真的不想从头开始编写POP3客户端,但我需要能够自定义电子邮件的处理.理想情况下,我可以插入一些组件,为我进行访问和检索,返回附件数组,正文文本,主题行等,准备好我的处理...
[更新:评论]
好的,所以我花了相当多的时间研究(主要是免费的).NET POP3库,所以我想我会简要回顾下面提到的一些以及其他一些:
Pop3.net - 免费 - 工作正常,在功能方面非常基础.这几乎只是POP3命令和一些base64编码,但它非常直接 - 可能是一个很好的介绍
Pop3向导 - 商业/一些开源代码 - 无法构建,缺少DLL,我不打扰这个
C#Mail - 免费供个人使用 - 运行良好,Mime解析器和SMTP客户端,但是评论是日语(不是什么大不了),它不适用于SSL'开箱即用' - 我不得不更改SslStream构造函数,之后它没有问题
OpenPOP - 免费 - 大约5年没有更新,所以它的当前状态是.NET 1.0,不支持SSL但是没有问题需要解决 - 我只是用SslStream替换了现有的流并且它有效.附带Mime解析器.
在免费图书馆中,我会选择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; });
foens.. 28
我是OpenPop.NET的主要开发人员之一.我刚刚完成了这篇评论,并且不得不对OpenPop.NET的当前状态提出一些评论,因为该评论似乎已经过时了.
OpenPop.NET重新开始积极开发.SSL已经推出半年了.该项目进行了重大的重构,现在更稳定,更易于使用.当我接手这个项目时,它有很多错误,到目前为止我目前都不知道.已经实现了许多额外的功能,主要是在MIME解析器部分.该项目由单元测试支持,每次发现错误时,都会创建一个单元测试,以在修复之前显示此错误.现在有一个附带网站的例子.还有其他更新,但我不想全部提及.
此外,OpenPop.NET的许可证已从LGPL更改为Public Domain(也就是说,没有限制).我认为这是商业用户的一项重大改进.
我是OpenPop.NET的主要开发人员之一.我刚刚完成了这篇评论,并且不得不对OpenPop.NET的当前状态提出一些评论,因为该评论似乎已经过时了.
OpenPop.NET重新开始积极开发.SSL已经推出半年了.该项目进行了重大的重构,现在更稳定,更易于使用.当我接手这个项目时,它有很多错误,到目前为止我目前都不知道.已经实现了许多额外的功能,主要是在MIME解析器部分.该项目由单元测试支持,每次发现错误时,都会创建一个单元测试,以在修复之前显示此错误.现在有一个附带网站的例子.还有其他更新,但我不想全部提及.
此外,OpenPop.NET的许可证已从LGPL更改为Public Domain(也就是说,没有限制).我认为这是商业用户的一项重大改进.
我最近为一个项目实现了OpenPop,并对此感到满意.它完成它在锡上的说法.(它是免费的.)
修改并上载了SslStream类的构造函数.推荐版本没有问题可以使用.