MailKit Imap获取邮件的已读和未读状态
本文关键字:状态 Imap 获取 MailKit | 更新日期: 2023-09-27 18:29:33
我正在使用MailKit从gmail帐户读取消息。效果很好。但是,我想获得消息的状态,如已读、未读、重要、已星号等。MailKit可以做到这一点吗?我似乎找不到关于它的任何信息。
这是我的代码:
var inbox = client.Inbox;
var message = inbox.GetMessage(4442);//4442 is the index of a message.
Console.WriteLine("Message Importance : {0}", message.Importance);
Console.WriteLine("Message Priority : {0}", message.Priority);
重要性和优先级总是返回"正常"。如何查找此邮件是否标记为重要?以及如何获取此邮件的已读或未读状态?。
没有消息属性,因为MimeMessage只是经过解析的原始MIME消息流,IMAP不将这些状态存储在消息流上,而是单独存储。
要获得您想要的信息,您需要使用Fetch()
方法:
var info = client.Inbox.Fetch (new [] { 4442 }, MessageSummaryItems.Flags | MessageSummaryItems.GMailLabels);
if (info[0].Flags.Value.HasFlag (MessageFlags.Flagged)) {
// this message is starred
}
if (info[0].Flags.Value.HasFlag (MessageFlags.Draft)) {
// this is a draft
}
if (info[0].GMailLabels.Contains ("Important")) {
// the message is Important
}
希望能有所帮助。