MailKit---獲取郵件


    MailKit是一個免費開源的郵箱類庫,簡單來說MailKit幫我們封裝了有關郵箱的一些幫助類,提供方法讓我們更容易使用郵箱的Smtp,Imap等郵箱協議。

    現在的郵箱基本上都使用Imap協議從郵件服務器獲取郵件到本地,原來的pop3協議已經很少使用了。這里只介紹Imap的方式。

   一、創建獲取郵件客戶端並連接到郵件服務器。

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 folder.close();

整合基本方法如下:

 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();

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM