MailKit Set MessageFlag, видимый после добавления - PullRequest
0 голосов
/ 22 ноября 2018

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

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

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

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

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

Ответы [ 2 ]

0 голосов
/ 22 ноября 2018

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

folder.Append (message, MessageFlags.Seen);

или

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

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

0 голосов
/ 22 ноября 2018

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

if (te.HasValue)
    folderSend.AddFlagsAsync(te.Value, MailKit.MessageFlags.Seen, true);
...