• 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();
  • 相关阅读:
    webrtc公开课
    webrtc第二篇 聊天室
    webrtc第一篇
    lua53
    setValuesForKeysWithDictionary forUndefinedKey
    xcode 插件
    2016年1月7日 隐藏NavigationBar时的一个坑
    jdbc
    brew gradle
    Openwrt TF Card Auto Mount&Check (4)
  • 原文地址:https://www.cnblogs.com/zuimengaitianya/p/6088895.html
Copyright © 2020-2023  润新知