• 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();
  • 相关阅读:
    申论1
    why factory pattern and when to use factory pattern
    jvm的字符串池
    is assembler instruction and machine instuction atomic
    jvm本身的多线程机制
    final
    java类的加载
    path和classpath的用途
    jar -cmf file1 file2 file3命令
    MANIFEST.MF中的MF是什么意思
  • 原文地址:https://www.cnblogs.com/zuimengaitianya/p/6109289.html
Copyright © 2020-2023  润新知