私のWebアプリケーションはかなり頻繁に電子メールを送信し、3種類の電子メールを送信します。ユーザーが開始する、システムのイベントに応答する、およびアプリケーションが受信する電子メールに自動応答する。
3つ目のタイプのメールが、自動応答の相互通信の無限ループに陥らないようにしたいと思います。現在、私はヘッダーを使用しています:
Precedence: junk
しかしYahoo!メールはこれらのメッセージをスパムとして扱っています。これは明らかに理想的ではありません。SOMEBODYに自動応答を読んで決定してもらいたいのですが、不在時の応答ではありません。
ジャンクフィルターや自動応答をトリガーせずにメールを送信する最良の方法は何ですか?
Precedence: junk?
Precedence: bulk?
Precedence: list?
X-Priority: 2?
RFC 2076 優先ヘッダーの使用を推奨しません。あなたが指摘したように、多くのクライアントはそれをフィルターにかけるだけです(特に優先順位:ジャンクの種類)。自動応答の戦争を回避するために、nullパスを使用する方が良い場合があります。
Return-Path: <>
最終的には、優先度を使用してこれを回避することができますが、これはヘッダーの精神に反するようです。これにはreturn-pathヘッダーを使用し、優先順位を回避することをお勧めします。場合によっては、アプリケーションに自動応答をドロップするために何らかの方法で記述する必要があります(応答の戦争に巻き込まれないようにするため)が、適切なreturn-pathを使用してこれが発生した状況を思い出せません。 (私が対処しなければならなかったほとんどのオートレスポンダー戦争は、非常に不適切に形成された電子メールの結果でした)
注:Return-Path
ヘッダーは、要するに、通知の宛先(バウンス、遅延配信など)であり、SMTPで必要とされるため、 RFC 2821 -で説明されています。これは、不良メールをドロップする1つの方法でもあります(理論的には、すべての良好なメールが適切なリターンパスを設定するためです)。
自動メール応答専用の RFC 3834 があります。
つまり、次のことをお勧めします。
受信メッセージのReturn-Path
ヘッダーに含まれているアドレスにのみ自動応答を送信します(有効なメールアドレスの場合)。特に、メッセージのReturn-Path
の "<>"(nullアドレス)は、このメッセージに対して自動応答を送信してはならないことを意味します。
自動応答を送信する場合、MAIL FROM smtpコマンドに "<>"(nullアドレス)が含まれている必要があります。これにより、メッセージが配信されるときにReturn-Path:<>が発生します。
自動応答を明示的に示すには、「-」以外の値を持つ Auto-Submitted ヘッダーを使用します。
注:このヘッダーは配信時にエンベロープアドレス(MAIL FROM smtpコマンドから)で書き換える必要があるため、送信メッセージにReturn-Pathヘッダーを明示的に設定することは意味がありません。
次のヘッダーを設定できます。
Precedence: bulk
Auto-Submitted: auto-generated
ソース: http://www.redmine.org/projects/redmine/repository/revisions/2655/diff
これに対処する従来の方法は、nullエンベロープ送信者(伝統的に<>として記述)を使用してEメールを送信することです。これにより、応答する送信者がいないため、相手側の自動応答が応答しなくなります。