MailKit---状态更改和删除

时间:2023-03-08 20:21:38
MailKit---状态更改和删除

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

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

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

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

 ImapClient client = new ImapClient();

 client.Connect("mail.qq.com");

 //带端口号和协议的连接方式
client.Connect("imap.126.com", , true);

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

  string account = "admin";
string passWord = "";
client.Authenticate(account, passWord);

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

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

四、操作邮件状态或删除邮件。

 //已读写的方式打开文件夹
folder.Open(FolderAccess.ReadWrite); //获取大于2016-9-1时间的所有邮件的唯一Id
var uidss = folder.Search(SearchQuery.DeliveredAfter(DateTime.Parse("2016-9-1"))); //设置为已读状态
MessageFlags messageFlags = MessageFlags.Seen; //bool silent=false; //设置状态
mailFolder.SetFlags(uidss[], mailFlags, silent);
//或者删除邮件
mailFolder.RemoveFlags(uidss[], mailFlags, silent); //主要针对Exchange 让删除指令执行
folder.Expunge(); //最后记得关闭文件夹
folder.Close();