我正在为我的客户工作的部分应用程序涉及发送事件的电子邮件。有时这些非常重要。我的客户端和我客户的大多数客户端都使用Outlook,它能够将邮件标记为高重要性。
现在,我知道假设所有最终用户都使用相同的界面是假的,我不是。但考虑到您可以从Outlook发送电子邮件作为高重要性,即使目标不一定是通过Outlook阅读,这意味着基本上存储了一些数据,以某种方式,让Outlook知道特定邮件是否被指定为高重要性。这至少是我的解释。
该应用程序目前使用System.Net.Mail
发送电子邮件,使用System.Net.Mail.MailMessages
进行撰写,System.Net.Mail.SmtpClient
发送电子邮件。是否可以使用System.Net.Mail
的能力设置此“高重要性”设置?如果没有,是否有可以配置此设置的程序集?
答案 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的链接,因为他在现场: