使用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
    评论
C 是一种编程语言,由贝尔实验室的丹尼斯·里奇在20世纪70年代初发明。C 语言被广泛用于系统软件和应用软件的开发,尤其是在Unix操作系统的开发中起着至关重要的作用。C 语言具有简洁、高效、灵活和可移植的特点,因此成为许多计算机科学教育课程的基础语言。 C 语言的语法结构简单直观,易于理解和学习。它提供了丰富的数据类型和控制结构,可以方便地进行算术操作、逻辑运算和流程控制。在 C 语言中,可以通过函数来进行模块化编程,将程序拆分为多个函数来实现不同的功能,提高代码的可读性和可维护性。 C 语言具有高效的执行性能和充分的系统级编程支持。它可以直接访问内存和硬件,支持底层的操作系统接口和库函数。因此,C 语言非常适合用于开发操作系统、嵌入式系统和驱动程序等低层软件。C 语言也提供了丰富的标准库函数,包括输入输出、字符串处理、内存管理等功能,使得开发者可以方便地开发各种应用程序。 虽然 C 语言在编程过程中需要开发者自己管理内存,但这也为程序的性能和资源利用提供了更大的灵活性和控制力。C 语言还具有很强的可移植性,几乎可以在所有的硬件平台和操作系统上编译和运行。因此,许多软件和系统都选择使用 C 语言进行开发。 总之,C 语言是一种强大而灵活的编程语言,具有高效、简洁、可移植和可扩展的特点,被广泛应用于各种领域的软件开发。无论是初学者还是有经验的开发者,学习和使用 C 语言都可以帮助他们更好地理解计算机底层原理,并开发出高质量的软件。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值