Можно ли пометить электронную почту как "высокую важность" для Outlook с помощью System.Net.Mail?

Часть приложения, над которым я работаю для моего клиента, включает отправку писем для событий. Иногда это очень важно. Мой клиент и большинство моих клиентских клиентов используют Outlook, который имеет возможность отмечать почтовое сообщение как высокое значение.

Теперь я знаю, что бессердечно предположить, что все конечные пользователи будут использовать один и тот же интерфейс, sp я не знаю. Но учитывая, что вы можете отправлять электронную почту из Outlook в качестве важного значения, даже если цель не обязательно считывает Outlook, это означает, что в основном хранятся некоторые данные, которые позволяют Outlook знать, было ли какое-то конкретное сообщение назначено как "Высокое значение". Это моя интерпретация, по крайней мере.

Приложение в настоящее время использует System.Net.Mail для отправки электронной почты, используя System.Net.Mail.MailMessages для их записи и System.Net.Mail.SmtpClient для их отправки. Можно ли установить эту настройку "Высокое значение" с помощью способностей System.Net.Mail? Если нет, имеется ли какая-либо сборка, которая может настроить этот параметр?

Ответы

Ответ 1

Задайте свойство Priority почтового сообщения. Его значения: Normal, Low или High.

Очень поздно: как отмечает @StefanSteiger, приоритет гарантированно работает только для Outlook. За прошедшие 8 лет с момента публикации этого вопроса/ответа индустрия определила заголовок важности как предпочтительный способ сделать это.

Даже позже отредактируйте: источник MailMessage дает понять, что настройка Priority фактически устанавливает три вещи: заголовок XPriority, заголовок Priority и заголовок важности. Поэтому использование свойства Priority будет вести себя так, как ожидалось, в любом почтовом клиенте и будет устанавливать соответствующие заголовки.

Ответ 3

Используйте это - он работает для меня.

Dim mail As New MailMessage()
mail = New MailMessage()
mail.Priority = MailPriority.High
mail.Priority = MailPriority.Normal
mail.Priority = MailPriority.Low

Ответ 4

Просто потому, что Outlook относится к приоритету как к важному, это не означает, что все другие почтовые программы также делают это.

Приоритет и важность - это не одно и то же.

Правильный ответ:

mail.Headers.Add("Importance", "High"); // High, normal, or low

значения нечувствительны к регистру.

https://www.iana.org/assignments/message-headers/message-headers.xhtml
https://tools.ietf.org/html/rfc4021#page-32

Ответ 5

Прыжки в конце здесь! Приоритет и значение не совпадают, но оба доступны большинству разработчиков. Как вы выбираете? Ну, приоритет определен в RFC 4021, 2.1.54, как свойство, которое влияет на скорость передачи и доставку ("нормальный", "срочный" и "несрочный"). Важность определена в RFC 4021, 2.1.52, как свойство, которое является подсказкой от отправителя получателям о том, насколько важно сообщение ("высокий", "нормальный" и "низкий").

Для моего варианта использования я ориентирую пользователей Outlook и использую MimeKit для создания электронных писем. Важность в том, что беспокоит большинство почтовых клиентов, поэтому вот как выглядит мой код:

using MimeKit;
var message = new MimeMessage();
message.Importance = MessageImportance.High;

Я отправлю ссылки Стигера, потому что он спот-на: