MailKit是一個免費開源的郵箱類庫,簡單來講MailKit幫咱們封裝了有關郵箱的一些幫助類,提供方法讓咱們更容易使用郵箱的Smtp,Imap等郵箱協議。服務器
如今的郵箱基本上都使用Imap協議從郵件服務器獲取郵件到本地,原來的pop3協議已經不多使用了。這裏只介紹Imap的方式。ui
1、建立獲取郵件客戶端並鏈接到郵件服務器。spa
1 ImapClient client = new ImapClient(); 2 3 client.Connect("mail.qq.com"); 4 5 //帶端口號和協議的鏈接方式 6 client.Connect("imap.126.com", 993, true);
2、驗證登陸信息,輸入帳號和密碼登陸。code
1 string account = "admin"; 2 string passWord = "123456"; 3 client.Authenticate(account, passWord);
3、獲取郵箱文件夾。默認的收件箱文件夾叫INBOX。blog
1 //獲取全部的文件夾 2 List<IMailFolder> mailFolderList = client.GetFolders(client.PersonalNamespaces[0]).ToList(); 3 4 //只獲取收件箱文件加 5 var folder = client.GetFolder("INBOX");
4、從文件夾獲取文件,獲取文件容許兩種方式:一、只獲取郵件頭;二、獲取完整的郵件;string
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 }
5、不要忘記關閉打開的文件夾;it
1 folder.close();
整合基本方法以下:class
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);
14 folser.close();