【问题标题】:Can I mark an Email as "High Importance" for Outlook using System.Net.Mail?我可以使用 System.Net.Mail 将电子邮件标记为 Outlook 的“高重要性”吗?
【发布时间】:2010-04-22 17:08:20
【问题描述】:

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

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

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

【问题讨论】:

标签: c# outlook system.net.mail


【解决方案1】:

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

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

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

【讨论】:

  • 优先级和重要性不是一回事。它们都存在于 Mail 上。
  • @StefanSteiger 重要性未记录为MailMessage 上的属性,也未在 Intellisense 中显示为可用属性。它被记录为一个可用的header,但没有给出其他信息。同样,这个答案已有 8 年历史,因此框架类的状态在此期间很容易发生变化。
  • 正确答案是:mail.Headers.Add("Importance", "High"); // 高、正常或低 - 不区分大小写。
  • @StefanSteiger 同样,这是一个 8 年前的问题/答案。你是根据它写出来的 5 年后甚至不存在的东西来判断它的。
【解决方案2】:

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

例如MailPriority.High

【讨论】:

    【解决方案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://www.rfc-editor.org/rfc/rfc4021#page-32

      【讨论】:

        【解决方案5】:

        来晚了! 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 的链接,因为他很准确:

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-02-08
          • 1970-01-01
          • 2010-10-09
          • 1970-01-01
          • 1970-01-01
          • 2013-04-02
          相关资源
          最近更新 更多