繁体   English   中英

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

[英]Can I mark an Email as “High Importance” for Outlook using System.Net.Mail?

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

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

该应用目前使用System.Net.Mail来发送电子邮件,使用System.Net.Mail.MailMessages用于编写和System.Net.Mail.SmtpClient给他们。 是否可以使用System.Net.Mail的功能设置此“高重要性”设置? 如果不是,是否有可用于配置此设置的程序集?

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

例如MailPriority.High

设置邮件的优先级属性。 其值为“正常”,“低”或“高”。

很晚的编辑:如@StefanSteiger所述,仅保证优先级可用于Outlook。 自发布问题/答案以来的8年间,该行业将“重要性”标头确定为首选的方式。

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

使用它-对我有用。

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

仅仅因为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

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

对于我的用例,我以Outlook用户为目标,并使用MimeKit生成电子邮件。 大多数电子邮件客户关心的是重要性,因此,我的代码可能如下所示:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM