私がクライアントのために取り組んでいるアプリケーションの一部には、イベントの電子メールの送信が含まれます。これらは非常に重要な場合があります。私のクライアントとほとんどのクライアントのクライアントは、メールメッセージを高重要度としてマークする機能を持つOutlookを使用しています。
今では、すべてのエンドユーザーが同じインターフェイスを使用していると想定するのは無謀ですが、私はそうではありません。ただし、ターゲットが必ずしもOutlookを読み取っていなくても、Outlookから電子メールを高重要度として送信できることを考えると、基本的に、特定のメッセージが高重要度として割り当てられているかどうかをOutlookに通知するデータが保存されていることを意味します。少なくとも、それは私の解釈です。
アプリケーションは現在、System.Net.Mail
を使用してメールを送信し、System.Net.Mail.MailMessages
を使用してメールを送信し、System.Net.Mail.SmtpClient
を使用してメールを送信します。この「重要度の高い」設定をSystem.Net.Mail
の能力で設定することは可能ですか?そうでない場合、この設定を構成できるアセンブリはありますか?
メールメッセージのPriorityプロパティを設定します。その値は、Normal、Low、またはHighです。
非常に遅い編集:@ StefanSteigerが指摘しているように、優先度はOutlookでのみ機能することが保証されています。この質問/回答が投稿されてから8年間で、業界はこれを行うための好ましい方法として重要度ヘッダーを決定しました。
後で編集:MailMessageのソース は、優先度を設定すると、実際にはXPriorityヘッダーと優先度ヘッダーおよび重要度ヘッダー。したがって、Priorityプロパティを使用すると、どのメールクライアントでも期待どおりに動作し、適切なヘッダーが設定されます。
System.Net.Mail.MailPriority 設定を行うことができます。
MailPriority.High
例えば。
これを使用してください-それは私のために働きます。
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で、メッセージの重要性( "high"、 "normal"、および "low")に関する発信者から受信者へのヒントであるプロパティとして定義されています。
私のユースケースでは、Outlookユーザーを対象とし、MimeKitを使用して電子メールを作成しています。重要性はほとんどの電子メールクライアントが気にするものなので、私のコードは次のようになります。
using MimeKit;
var message = new MimeMessage();
message.Importance = MessageImportance.High;
シュタイガーのリンクを再投稿します。彼はスポットオンだからです。