使用C#和OpenPop.dll开发读取POP3邮件程序

 制作一个ASP.NET MVC4论坛项目,该项目需要将以往十多年的Mail List(邮件列表)内容都导入到新的论坛中,因此需要能够将邮件的标题、发布时间、发布人及邮件内容导入到论坛的数据库内。.Net并没有提供内置的读取POP3邮件内容的类库,因此,只有在网上查询可用的类库。

查询的结果,OpenPop.dll(官网下载地址:http://sourceforge.net/projects/hpop/)是符合要求的一种。

下面的代码只给出了最核心、最简捷的内容,以Console方式完成。 利用Pop3Client对象的Connect方法,给出PoP3 Server、端口号、是否需要SSL连接;Authenticate方法则给出POP3的账号及密码。

在使用中,标题、发送人及发送时间及许多其它信息(如cc bcc to等等)都可以使用简单的方法取出(如下面代码所示),因为它们都是以plaintext的方式发送的,但对于邮件内容(body)和附件(attachment),由于涉及到multipart格式,因此,为能简单地取出。在下面的代码中,对于邮件内容的提取方式,最主要的是两种:一种是text格式,另外一种是multipart格式,这两种格式的提取办法是不同的。

 下面的代码由笔者实际调试,真实可用。

        using System;
using OpenPop.Pop3;
using OpenPop.Mime;
using System.Collections.Generic;


     #region using OpenPop.dll to read email public static void ReadPop3() { using (Pop3Client client = new Pop3Client()) { if (client.Connected) { client.Disconnect(); } // Connect to the server, false means don't use ssl client.Connect("pop3.263.net", 110, false); // Authenticate ourselves towards the server by email account and password client.Authenticate("wusir@263.net", "12345678"); //email count int messageCount = client.GetMessageCount(); //i = 1 is the first email; 1 is the oldest email for (int i = 1; i <= messageCount; i++) { Message message = client.GetMessage(i); string sender = message.Headers.From.DisplayName; string from = message.Headers.From.Address; string subject = message.Headers.Subject; DateTime Datesent = message.Headers.DateSent; MessagePart messagePart = message.MessagePart; //email body, string body = " "; if (messagePart.IsText) { body = messagePart.GetBodyAsText(); } else if (messagePart.IsMultiPart) { MessagePart plainTextPart = message.FindFirstPlainTextVersion(); if (plainTextPart != null) { // The message had a text/plain version - show that one body = plainTextPart.GetBodyAsText(); } else { // Try to find a body to show in some of the other text versions List<MessagePart> textVersions = message.FindAllTextVersions(); if (textVersions.Count >= 1) body = textVersions[0].GetBodyAsText(); else body = "<<OpenPop>> Cannot find a text version body in this message."; } } } } } #endregion

 更多帮助内容,可以参见官网帮助文档:http://hpop.sourceforge.net/documentation/index.html

另外,如果直接读取Outlook(OE)或者Windows Live Mail格式的邮件内容(扩展名.eml),可以使用LumiSoft.Net.dll完成

转载于:https://www.cnblogs.com/wusir/p/3564355.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值