22

我正在为我的客户处理的应用程序的一部分涉及为事件发送电子邮件。有时这些非常重要。我的客户和我客户的大多数客户都使用 Outlook,它能够将邮件消息标记为高重要性。

现在,我知道假设所有最终用户都将使用相同的界面是无情的,但我不是。但是考虑到即使目标不一定是通过 Outlook 阅读,您也可以从 Outlook 发送电子邮件作为高重要性,这意味着基本上存储了一些数据,以某种方式让 Outlook 知道特定邮件是否被分配为高重要性。这是我的解释,至少。

该应用程序当前用于System.Net.Mail发送电子邮件,System.Net.Mail.MailMessages用于编写和System.Net.Mail.SmtpClient发送电子邮件。System.Net.Mail是否可以使用' 的能力设置此“高重要性”设置?如果没有,是否有任何可用的程序集可以配置此设置?

4

5 回答 5

24

设置邮件消息的 Priority 属性。其值为正常、低或高。

非常晚的编辑:正如@StefanSteiger 所指出的,优先级仅保证适用于 Outlook。自发布此问题/答案以来的 8 年中,业界已将重要性标题作为首选方式。

甚至后来的编辑:MailMessage的源代码清楚地表明,设置 Priority 实际上设置了三件事:XPriority 标头、Priority 标头和 Importance 标头。因此,使用 Priority 属性将在任何邮件客户端中按预期运行,并将设置适当的标头。

于 2010-04-22T17:10:23.453 回答
23

您可以设置System.Net.Mail.MailPriority设置。

MailPriority.High例如。

于 2010-04-22T17:09:38.773 回答
12

使用它 - 它对我有用。

Dim mail As New MailMessage()
mail = New MailMessage()
mail.Priority = MailPriority.High
mail.Priority = MailPriority.Normal
mail.Priority = MailPriority.Low
于 2013-07-13T05:26:43.520 回答
3

仅仅因为 Outlook 将优先级视为重要,并不意味着所有其他电子邮件程序也这样做。

优先级和重要性不是一回事。

正确答案是:

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

值不区分大小写。

https://www.iana.org/assignments/message-headers/message-headers.xhtml
https://www.rfc-editor.org/rfc/rfc4021#page-32

于 2018-09-14T08:58:44.870 回答
1

在这里迟到!Priority 和 Importance 并不相同,但大多数开发人员都可以设置。你如何选择?好吧,优先级在 RFC 4021, 2.1.54 中定义为影响传输速度和交付的属性(“正常”、“紧急”和“非紧急”)。重要性在 RFC 4021, 2.1.52 中定义为一个属性,它是从发起者到接收者关于消息的重要性(“高”、“正常”和“低”)的提示。

对于我的用例,我的目标是 Outlook 用户并使用 MimeKit 来构建电子邮件。重要性是大多数电子邮件客户关心的问题,所以我的代码可能如下所示:

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

我将重新发布 Steiger 的链接,因为他很准确:

于 2018-12-06T15:37:54.643 回答