使用 LumiSoft.Net.POP3.Client 接收邮件

介绍了如何利用LumiSoft.NET库中的POP3.Client组件来接收邮件,包括配置服务器信息、认证过程及邮件内容解析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

.Net FCL 里自带了SMTP的实现System.Net.Mail,但是没有POP3的实现,要想使用.Net通过代码接收邮件,就只能通过第三方的组件了。这里我给大家介绍一下我常用的LumiSoft.Net.POP3.Client。

LumiSoft.Net是由 Ivar Lumi开发的免费,开放源码的.Net网络协议库,包含了DNS Client, FTP Client/Server, ICMP, IMAP Client/Server, MIME, NNTP, POP3 Client/Server, SMTP Client/Server等协议/规范的实现。你可以在 这里下载所有的源码/二进制文件/文档,也可以在 LumiSoft.Net Forum里获取支持。

我们要做的首先当然是 下载LumiSoft.Net类库,并 下载LumiSoft.Net文档,然后在自己的项目里引用LumiSoft.Net了.

接收邮件的代码如下,需要说明的是邮件的内容是经过MIME格式的,所以需要使用Mime.Parse()进行处理。
using  System;
using  LumiSoft.Net.POP3.Client;
using  LumiSoft.Net.Mime;

    
public  List < Mime >  GetEmails()
    {
        
// 需要首先设置这些信息
         string  pop3Server;
        
int  pop3Port;
        
bool  pop3UseSsl;
        
string  username, password;
        List
< string >  gotEmailIds;
        
        List
< Mime >  result = new  List < Mime > ();
        
using (POP3_Client pop3  =   new  POP3_Client())
        {
            
// 与Pop3服务器建立连接
            pop3.Connect(pop3Server, pop3Port, pop3UseSsl);
            
// 验证身份
            pop3.Authenticate(username, password,  false );
            
            
// 获取邮件信息列表
            POP3_MessagesInfo infos  =  c.GetMessagesInfo();
            
            
foreach  (POP3_MessageInfo info  in  infos)
            {
                
// 每封Email会有一个在Pop3服务器范围内唯一的Id,检查这个Id是否存在就可以知道以前有没有接收过这封邮件
                 if (gotEmailIds.Contains(info.MessageUID))
                    
continue ;

                
// 获取这封邮件的内容
                 byte [] bytes  =  pop3.GetMessage(info);
                
// 记录这封邮件的Id
                gotEmailIds.Add(info.MessageUId);

                
// 解析从Pop3服务器发送过来的邮件信息
                Mime mime = Mime.Parse(bytes);
                
                result.Add(mime);
            }
        }
        
return  result;
    }


关于如何使用MIME这个类,大家可以看文档。这里提供一个简单的示例。
     public   void  ShowEmail(Mime m)
    {
        Console.WriteLine(
" From: {0} " , m.MainEntity.From.ToAddressListString());
        
        Console.WriteLine(
" To: {0} " , m.MainEntity.To.ToAddressListString());
        
        Console.WrtieLine(
" Time: {0} " , m.MainEntity.Date);
        
        Console.WriteLine(
" Subject: {0} " , m.MainEntity.Subject);
        
        Console.WriteLine(
" Plain Body: {0} " , m.BodyText);
        
        Console.WriteLine(
" Html Body: {0} " , m.BodyHtml);
    }

佛历 2551 年 7月 2日 星期一
本地时间:
2007-7-1 21:09:52

时间

?
安尼威土克、瓜甲兰

 2007
 7 月
西历 共和国58年 农历丁亥年   【猪】
1
建党节 香港…
2
十八
3
十九
4
二十
5
廿一
6
廿二
7
合作节
8
廿四
9
廿五
10
廿六
11
廿七
12
廿八
13
黑色星期…
14
6月大
15
被奴役国家周
16
护法韦…
17
初四
18
初五
19
初六
20
初七
21
初八
22
初九
23
大暑
24
十一
25
十二
26
十三
27
十四
28
十五
29
十六
30
十七
31
十八

















 

武林榜免费流量统计系统 <script type="text/javascript">var s="http://www.google.com/search?hl=zh-cn&lr=lang_zh-cn&q=";</script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值