MailKit Set MessageFlag, видимый после добавления

Я отправляю MailKit.Message Async с MailKit.Net.Smtp.SmtpClient.

Затем я помещаю почту в папку отправки, но флаг сообщения не отображается.

Я не могу установить флаг сообщения в Построении сообщения, только после добавления, но я не нашел способа конвертировать MailKit.UniqueId? в MailKit.UniqueId.

 var folderSend = IC.GetFolder(MailKit.SpecialFolder.Sent);
 MailKit.UniqueId? te = folderSend.Append(nochmalMessage);
 folderSend.AddFlagsAsync(te, MailKit.MessageFlags.Seen, true);

должен быть MailKit.UniqueId

2 ответа

Решение

Append() а также AppendAsync() у каждого метода есть перегрузка, которая принимает MessageFlags аргумент. Это позволяет упростить вашу логику до:

folder.Append (message, MessageFlags.Seen);

или же

await folder.AppendAsync (message, MessageFlags.Seen);

Это устраняет необходимость даже беспокоиться о вызове AddFlags() или AddFlagsAsync() с флагами, которые вы хотите установить в добавленном сообщении, потому что он будет устанавливать эти флаги при добавлении сообщения.

Ваша переменная te имеет тип Nullable<UniqueId> но метод AddFlagsAsync принимает тип UniqueId, Ты можешь использовать te.Value или перед проверкой, имеет ли te значение:

if (te.HasValue)
    folderSend.AddFlagsAsync(te.Value, MailKit.MessageFlags.Seen, true);
Другие вопросы по тегам