首页 / 知识
关于Unicode:在C#中使用Pop3阅读电子邮件
2023-04-14 05:48:00

Reading Email using Pop3 in C#我正在寻找一种在C#2.0中使用Pop3阅读电子邮件的方法。 当前,我正在使用CodeProject中的代码。 但是,此解决方案并不理想。 最大的问题是它不支持用unicode编写的电子邮件。 我已经成功使用OpenPop.NET通过POP3访问电子邮件。
通过POP3协议下载电子邮件是任务的轻松部分。该协议非常简单,如果您不想通过网络发送明文密码(并且不能使用SSL加密的通信通道),那么唯一困难的部分就是高级身份验证方法。请参阅RFC 1939:邮局协议-版本3 当您必须解析收到的电子邮件时,困难的部分就来了,这意味着在大多数情况下,解析为MIME格式。您可以在几小时或几天内编写快速且肮脏的MIME解析器,它将处理所有传入消息的95 +%。改进解析器,使其可以解析几乎所有电子邮件意味着:
调试功能强大的MIME解析器需要花费数月的时间。我知道,因为我正在看着我的朋友为下面提到的组件编写一个这样的解析器,并且也在为它编写一些单元测试;-) 回到原来的问题。 以下从POP3教程页面和链接中获取的代码将为您提供帮助:
我的开源应用程序BugTracker.NET包含一个可以解析MIME的POP3客户端。 POP3代码和MIME代码均来自其他作者,但是您可以看到它们如何在我的应用程序中组合在一起。 对于MIME解析,我使用http://anmar.eu.org/projects/sharpmimetools/。 请参阅文件POP3Main.cs,POP3Client.cs和insert_bug.aspx 您还可以尝试Mail.dll邮件组件,它具有SSL支持,unicode和多国电子邮件支持:
您可以在这里https://www.limilabs.com/mail下载 请注意,这是我创建的商业产品。 HigLabo.Mail易于使用。这是一个示例用法:
您可以从https://github.com/higty/higlabo或Nuget [HigLabo]获取它 我不推荐OpenPOP。我只是花了几个小时来调试一个问题-OpenPOP的POPClient.GetMessage()神秘地返回了null。我调试了它,发现它是一个字符串索引错误-请参阅我在此处提交的补丁:http://sourceforge.net/tracker/?func=detail&aid=2833334&group_id=92166&atid=599778。很难找到原因,因为有空的catch {}块吞下了异常。 另外,该项目大部分处于休眠状态,最新版本是2004年。 目前,我们仍在使用OpenPOP,但我将看看人们在这里推荐的其他一些项目。 称我为老式,但为什么要使用第三方库作为简单协议。我已经使用System.Net.Sockets.TCPClient和System.Net.Security.SslStream在基于Web的ASP.NET应用程序中实现了POP3阅读器,以进行加密和身份验证。就协议而言,一旦您打开与POP3服务器的通信,就只需要处理少数命令。这是一个非常容易使用的协议。 我刚刚尝试了SMTPop,它起作用了。 编写以下代码:
|
最新内容
相关内容
linux支持管道的命令?
linux支持管道的命令?,通信,标准,系统,信息,地方,数据,管道,环境,设备,工具,Linux下Grep命令的详细使用方法?查找包含teacher文本的所有行并打linux阅读文件的命令?
linux阅读文件的命令?,时间,系统,信息,标准,名称,工具,命令,文件,状态,数据,linux中查看文件和目录的命令是什么在Linux系统中,使用ls命令可以linux命令输入方法?
linux命令输入方法?,系统,电脑,密码,管理,地址,命令,网站,工具,首开,位置,linux终端输入~怎么弄中间在电脑上打开需要的Word文件进入。进入到文Python中什么是反射?使用方法有哪
Python中什么是反射?使用方法有哪些?,信息,培训,状态,术语,检测,反射,属性,对象,字符串,方法,反射这个术语在很多语言中都存在,并且存在大量的Python中有哪些方法可以解压文件?
Python中有哪些方法可以解压文件?,工具,系统,工作,培训,文件,文件夹,方法,窗体,不同于,以下内容,在Python学习和日常使用中,很容易造成文件过大Python列表类型list合并有哪些方法
Python列表类型list合并有哪些方法?,培训,方法,列表,可能会,数组,切片,下文,字符串,数据类型,请看,在Python编程语言中,有各种数据类型,比如字符零基础学习Python的四种方法
零基础学习Python的四种方法,基础,代码,基础知识,培训,发展,时间,知识,书籍,初学者,练习,近年来,随着移动互联网的发展,对Python人才的需求越来Python语言支持编程方式有哪些
Python语言支持编程方式有哪些,数据,设计,中心,代码,第三,网站,人工智能,平台,位置,培训,Python是一种跨平台的计算机程序设计语言,是一个高层如何在Python中定义类方法和修改类
如何在Python中定义类方法和修改类属性?,代码,方法,培训,对象,实例,定义,结果,示例,赋值,属性,Python中的类还可定义使用@classmethod修饰的类提高Python 效率的 5 种高级方法
提高Python 效率的 5 种高级方法,代码,数字,函数,有限,设备,项目,工具,培训,列表,内存,任何编程语言的高级特征通常都是通过大量的使用经验才关于Python的高效学习方法
关于Python的高效学习方法,基础,培训,资料,质量,技术,系统,情况,学习方法,高效,初学者,今天给大家分享一下Python高效的学习方法,尽管每个人的学习python要注意的方法事项
学习python要注意的方法事项,代码,基础,环境,网络,时间,地方,分析,评论,人工智能,数据,python入门比较建议找一个视频课程,花一周时间快速过掉