MailKit---状态更改和删除

    当我们拉取邮件列表,并展示邮件后需要打开邮件,同时标识本邮件状态为已读状态,或者我们直接删除邮件。下面介绍基本的应用。

    首先了解邮件的所有枚举状态:MailKit.MessageFlags包括:(None = 0,Seen = 1,Answered = 2,Flagged = 4,Deleted = 8,Draft = 16,Recent = 32,UserDefined = 64)。

    要操作文件夹需做如下动作:

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

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 folder.Open(FolderAccess.ReadWrite);
 3 
 4 //获取大于2016-9-1时间的所有邮件的唯一Id
 5 var uidss = folder.Search(SearchQuery.DeliveredAfter(DateTime.Parse("2016-9-1")));
 6 
 7 //设置为已读状态
 8 MessageFlags messageFlags = MessageFlags.Seen;
 9 
10 //bool silent=false;
11 
12 //设置状态
13 mailFolder.SetFlags(uidss[0], mailFlags, silent);
14 //或者删除邮件
15 mailFolder.RemoveFlags(uidss[0], mailFlags, silent);
16 
17 //主要针对Exchange 让删除指令执行
18 folder.Expunge();
19 
20 //最后记得关闭文件夹
21 folder.Close();
原文地址:https://www.cnblogs.com/zuimengaitianya/p/6109289.html