MailKit---获取邮件

MailKit是一个免费开源的邮箱类库,简单来说MailKit帮我们封装了有关邮箱的一些帮助类,提供方法让我们更容易使用邮箱的Smtp,Imap等邮箱协议。

现在的邮箱基本上都使用smtp协议从邮件服务器获取邮件到本地,原来的pop3协议已经很少使用了。这里只介绍smtp的方式。

一、创建获取邮件客户端并连接到邮件服务器。

1 ImapClient client = new ImapClient();
2
3 client.Connect("mail.qq.com");
4
5 //带端口号和协议的连接方式
6 client.Connect("imap.126.com", 993, true);

二、验证登录信息,输入账号和密码登录。

1 string account = "admin";
2 string passWord = "123456";
3 client.Authenticate(account, passWord);

三、获取邮箱文件夹。默认的收件箱文件夹叫INBOX。

1 //获取所有的文件夹
2 List<IMailFolder> mailFolderList = client.GetFolders(client.PersonalNamespaces[0]).ToList();
3
4 //只获取收件箱文件加
5 var folder = client.GetFolder("INBOX");

四、从文件夹获取文件,获取文件允许两种方式:1、只获取邮件头;2、获取完整的邮件;

 1 //打开文件夹并设置为读的方式
 2 folder.Open(MailKit.FolderAccess.ReadOnly);
 3
 4 //获取大于2016-9-1时间的所有邮件的唯一Id
 5 var uidss = folder.Search(SearchQuery.DeliveredAfter(DateTime.Parse("2016-9-1")));
 6
 7 //获取邮件头
 8 folder.Fetch(uids, MessageSummaryItems.UniqueId | MessageSummaryItems.Full);
 9
10 //获取完整邮件
11 foreach (var item in uidss ) {
12                         MimeMessage message = folder.GetMessage(new UniqueId(item.Id));
13                     }

整合基本方法如下:

 1 ImapClient client = new ImapClient();
 2             string account = "admin";
 3             string passWord = "123456";
 4
 5 client.Connect("imap.126.com", 993, true);
 6
 7 client.Authenticate(account, passWord);
 8
 9 var folder = client.GetFolder("INBOX");
10 folder.Open(MailKit.FolderAccess.ReadOnly);
11                         var uidss = folder.Search(SearchQuery.DeliveredAfter(DateTime.Parse("2016-9-1")));
12
13 var ss = folder.Fetch(uidss, MessageSummaryItems.UniqueId | MessageSummaryItems.Full);
时间: 2024-10-06 00:16:42

MailKit---获取邮件的相关文章

使用MailKit收发邮件

.Net BCL库中对于邮件的支持只有SmtpClient一个,它只能进行简单的邮件的发送操作,并且不支持POP3和SMTP,无法接收邮件,用起来有诸多不便. 今天看到园子里有文章(使用 MimeKit 和 MailKit 发送邮件)介绍了一个新库MailKit.看了一下,它对SMTP, POP3, and IMAP都有良好的支持,以后有用到的地方可以一试. ? ?

python模拟163登陆获取邮件列表

利用cookielib和urllib2模块模拟登陆163的例子有很多,近期看了<python模拟登陆163邮箱并获取通讯录>一文,受到启发,试着对收件箱.发件箱等进行了分析,并列出了所有邮件列表及状态,包括发件人.收件人.主题.发信时间.已读未读等状态. 1.参考代码:http://hi.baidu.com/fc_lamp/blog/item/2466d1096fcc532de8248839.html%EF%BB%BF 1 #-*- coding:UTF-8 -*- 2 import urll

C# 通过HTTP代理访问Socket来获取邮件

关键穿透代理的代码(通过HTTP代理获取TcpClent) public class ClientHelper { public static TcpClient connectViaHTTPProxy( string targetHost, int targetPort, string httpProxyHost, int httpProxyPort, string proxyUserName, string proxyPassword) { var uriBuilder = new UriB

nodejs获取邮件

npm install imap npm install mailparser var Imap = require('imap'); var inspect = require('util').inspect; var Mailparser = require('mailparser').MailParser; var fs = require('fs'); var imap = new Imap({ user: '[email protected]', password: 'password

python 使用poplib获取邮件

poplib email.mime.text MIMEText pop_server = pop_port = username = password = pobj = poplib.POP3_SSL(pop_server) pobj.set_debuglevel() :     pobj.user(username)     pobj.pass_(password) ,e:     (e) email_id pobj.list()[]:     ,email_id.split()[] cont

创建基于MailKit和MimeKit的.NET基础邮件服务

邮件服务是一般的系统都会拥有和需要的功能,但是对于.NET项目来说,邮件服务的创建和使用会较为的麻烦..NET对于邮件功能提供了System.Net.Mail用于创建邮件服务,该基础服务提供邮件的基础操作,并且使用也较为的简单.对于真正将该功能使用于项目的人,就会慢慢发现其中的优缺点,甚至有些时候不能忍受其中的问题.在这里介绍一种微软用于替代System.Net.Mail的邮件服务组件MailKit和MimeKit,官网地址:http://www.mimekit.net/.GitHub地址:ht

MailKit和MimeKit 收发邮件

新建项目,引用MailKit和MimeKit NuGet包 using CommonTool.MailKit; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ProjectDemo.ConsoleApp { class Program { static void Main(string[] a

获取163邮箱的邮件 并下载附件

老师要求让获取邮箱邮件内容,发件人.收件人.发送时间等等,转存到excel里面,并下载邮件带的附件,通过网上搜集资料,整理出如下代码,只是实现功能,代码并未优化. 使用的时候只需要填写自己邮箱账号密码就可 下面贴出代码, package ltg.defualt; import java.io.File; import java.io.FileOutputStream; import java.io.OutputStream; import ltg.helper.POP3ReceiveMailTe

第五篇 - Selenium突破反爬获取qq邮件标题

1 from selenium import webdriver 2 from selenium.webdriver import ActionChains 3 4 #1.打开登陆页面 5 wd = webdriver.Chrome() 6 wd.implicitly_wait(10) 7 wd.get('https://mail.qq.com/') 8 9 #2.切换到账号密码登陆 10 login_frame = wd.find_element_by_id('login_frame') 11