如何标记看不见的最后未读消息 S22.imap

use*_*870 3 c# imap

如何从邮箱中读取最后一条未读消息并将此消息标记为“未读”

我使用 s22.imap.dll

ImapClient Client = new ImapClient("imap.gmail.com", 993, "My_Username",
    "My_Password", true, AuthMethod.Login);

// Get a list of unique identifiers (UIDs) of all unread messages in the mailbox.
uint[] uids = Client.Search( SearchCondition.Unseen() );

// Fetch the messages and print out their subject lines.
foreach(uint uid in uids) {
    MailMessage message = Client.GetMessage(uid);

 Console.WriteLine(message.Subject);
}

// Free up any resources associated with this instance.
Client.Dispose();
Run Code Online (Sandbox Code Playgroud)

小智 5

首先获取uid最后一条未读消息:

var lastUid = Client.Search( SearchCondition.Unseen().Last() );
Run Code Online (Sandbox Code Playgroud)

并阅读此消息;

MailMessage message = Client.GetMessage( lastUid );
Run Code Online (Sandbox Code Playgroud)

将此消息标记为“未见”:

Client.RemoveMessageFlags( lastUid, null, MessageFlag.Seen );
Run Code Online (Sandbox Code Playgroud)

查看更多关于:ImapClient.RemoveMessageFlags 方法