我可以使用System.Net.Mail将电子邮件标记为Outlook的“高重要性”吗?

时间:2010-04-22 17:08:21

标签: c# outlook system.net.mail

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

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

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

5 个答案:

答案 0 :(得分:21)

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

例如

MailPriority.High

答案 1 :(得分:21)

设置邮件的Priority属性。它的值是正常,低或高。

很晚编辑:正如@StefanSteiger所说,优先级只能保证适用于Outlook。在此问题/答案发布后的8年间,业界已将重要性标题作为首选方式。

稍后编辑: source for MailMessage清楚地表明设置优先级实际上设置了三件事:XPriority标头,优先级标头,和重要性标头。因此,使用Priority属性将在任何邮件客户端中按预期运行,并将设置相应的标头。

答案 2 :(得分:9)

使用它 - 它对我有用。

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

答案 3 :(得分:3)

由于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

答案 4 :(得分:0)

跳到这里很晚!优先级和重要性并不相同,但是大多数开发人员都可以设置两者。您如何选择?好吧,优先级在RFC 4021 2.1.54中定义为影响传输速度和传输的属性(“正常”,“紧急”和“非紧急”)。重要性在RFC 4021 2.1.52中定义为一种属性,它是从始发者到收件人的提示,即消息的重要性(“高”,“正常”和“低”)。

对于我的用例,我以Outlook用户为目标,并使用MimeKit构建电子邮件。大多数电子邮件客户关心的是重要性,所以这就是我的代码:

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

我将重新张贴Steiger的链接,因为他在现场: