Как пометить НЕ прочитанное письмо как прочитанное c# MailKit imap
основной кусок кода, выполняющий получением писем и дальнейшей укладкой в лист.
client.GetFolder("***").Open(MailKit.FolderAccess.ReadOnly);
var uids = client.GetFolder("***").Search(SearchQuery.NotSeen);
var messages = client.GetFolder("***").Fetch(uids, MessageSummaryItems.Envelope | MessageSummaryItems.BodyStructure);
if (messages != null && messages.Count > 0)
{
foreach (var msg in messages)
{
var body = (TextPart)client.GetFolder("***").GetBodyPart(msg.UniqueId, msg.BodyParts.First());
var date = msg.Date;
if (date.Date == dateTimePicker1.Value.Date)
{
list.Add(new MailListItem
{
msgInList = msg, // тут я в лист вытаскиваю само сообщение (хз зачем)
uid = msg.UniqueId.Id.ToString(),
From = msg.Envelope.From.ToString(),
Date = date,
Subject = msg.Envelope.Subject,
Body = body.Text,
Button = "Открыть письмо",
Download = false
});
}
}
}
Ответы (1 шт):
Автор решения: yava43DEVELOPER
→ Ссылка
существует метод SetFlags. Пихаем в него "msg.Index", устанавливаем "Seen".
client.GetFolder("***").SetFlags(Convert.ToInt32(uid), MessageFlags.Seen, false);
при этом папка должны быть открыта в режиме "ReadWrite".
client.GetFolder("***").Open(MailKit.FolderAccess.ReadWrite);