sendmail で配信ステータス通知を表示するにはどうすればいいですか?

sendmail で配信ステータス通知を表示するにはどうすればいいですか?

スクリプトを使用して sendmail 経由でニュースレターを送信しています。メールが失敗した場合に配信ステータス通知にアクセスしたいのですが、DSN の内容を一覧表示するコマンドはありますか?

答え1

メール ログを確認してください。すべての配信とそのステータスが表示されます。ほとんどの失敗は送信時に発生すると予想されます。その結果、サーバーの送信アドレスにバウンス メッセージが送信されるはずです。

メール キューには、一時的に拒否されているメッセージがいくつか含まれている可能性があります。これは、メールボックスがいっぱいの場合、サーバーが停止している場合、その他の解決可能な状況の場合などに発生します。

バウンス メッセージには送信者が空であるため、バウンス メッセージをメールボックスではなくプロセスにフィルター処理することをお勧めします。(送信者アドレスが空の場合、バウンス メッセージがバウンスされるのを防ぎます。) その後、メッセージを解析してバウンス メッセージであることを確認し、そのアドレスのステータスを記録します。バウンスは一時的なもの (メールボックスがいっぱいなど) である可能性があるため、それに応じてバウンス メッセージを処理する必要があります。

多くのユーザーは配信ステータス通知を無効にしているため、メッセージが配信されなかったことを示す信頼できる指標にはなりません。DSN 応答は、配信の信頼できる指標です。DSN 応答は、電子メール メッセージとして送信元アドレスに送信されます。バウンス メッセージと同様に、エンベロープ送信者アドレスは、バウンスが生成されないように空になっていると思います。メッセージをプログラムで処理する場合は、バウンス メッセージとは異なる方法でこれらのメッセージを処理する必要があります。

最終的には、次の 3 つのクラスの電子メール アドレスが作成されます。

  • バウンスすることが知られているアドレス(バウンスは永続的または一時的な場合があります)
  • 動作することがわかっているアドレス(DSN メッセージを送信)
  • 不明なステータスのアドレス (バウンスも DSN の送信も行われない)。

永続的なステータスでバウンスするアドレスは積極的に削除する必要があります。

関連情報