将POP3客户端功能集成到C#应用程序中?

fle*_*esh 53 .net pop3 review

我有一个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; });
Run Code Online (Sandbox Code Playgroud)

foe*_*ens 28

我是OpenPop.NET的主要开发人员之一.我刚刚完成了这篇评论,并且不得不对OpenPop.NET的当前状态提出一些评论,因为该评论似乎已经过时了.

OpenPop.NET重新开始积极开发.SSL已经推出半年了.该项目进行了重大的重构,现在更稳定,更易于使用.当我接手这个项目时,它有很多错误,到目前为止我目前都不知道.已经实现了许多额外的功能,主要是在MIME解析器部分.该项目由单元测试支持,每次发现错误时,都会创建一个单元测试,以在修复之前显示此错误.现在有一个附带网站的例子.还有其他更新,但我不想全部提及.

此外,OpenPop.NET的许可证已从LGPL更改为Public Domain(也就是说,没有限制).我认为这是商业用户的一项重大改进.


Jas*_*ter 7

我最近为一个项目实现了OpenPop,并对此感到满意.它完成它在锡上的说法.(它是免费的.)


Hig*_*gty 6

修改并上载了SslStream类的构造函数.推荐版本没有问题可以使用.

  • -1因为这个答案并没有真正提供任何有用的指示或链接. (4认同)

Joa*_*mer 1

codeproject.com 上有多种 POP3 客户端实现。我没有对它们进行评估,但也许你可以在那里找到你需要的东西。如果没有,我可以说 POP3 是一个相当简单的协议。如果您知道 4-5 个命令,您甚至可以使用 telnet 读取 POP3 框。

实际上,您只需要命令,也许还需要一些附件的 Base64 解码。就是这样。

  • 我认为你低估了现实世界中 MIME 的复杂性和多样性。 (3认同)