1つの疑問が出る
本当にexample.comにメール送信して良いのか?メールサーバーに負荷をかけてしまうのではないか?
メールサーバのメールキューがたまっちゃう問題はどうしていますか?
テストのときはhoge.comとかだと実在するドメインなので、メール送信先としては良くないのでexample.comを使いましょう!ということですが、メールキューがたまるのでは?という疑問が出ました。
メール送信の仕組み上、実在しないドメイン、または実在してもメールサーバーが無いドメインへメールを送信すると、メールサーバーは該当サーバーが落ちているという認識して、再送信するためのメールキューに登録して一定時間後にメールを再送信します。
これを、数回繰り返して、本当にメール送信ができないときに、bounceメールとしてメールを戻してきます。
bounceメールとして判定するまでの間がメールキューにたまる問題です。
実は、ちょっと前まで、example.comにはメール送信先情報であるMXレコードが引けないために、example.comにメール送信したメールサーバーには再送信のためのメールキューがたまってしまいました。
そのため、メールサーバーを管理するインフラチームに迷惑をかけてしまう懸念がありました。
※ちなみに、今でも負荷テストならメール送信先を/dev/nullに落とすのが礼儀です。
しかし、今はexample.comにはNull MXというMXレコードが設定されています。
意外と知られてないので記事を書きます。
Wha't Null MX?
Null MXはRFC7505で定義されています。
https://tools.ietf.org/html/rfc7505
3章に、そのことが書かれています。
Null MXを定義をするとき、DNSの設定には.(ピリオド)を使用します。
nslookup -type=mx example.com
上のようにexample.comのMXレコードをnslookupで確認してみましょう。
example.com mail exchanger = 0 .
とNull MXである.(ピリオド)が設定されています。
メールサーバーの振る舞い
Null MX非対応のメールサーバーだと、メールキューがたまる可能性はあります。
メールサーバーの実装によりますが.(ピリオド)ホストだと不正なドメインとなるので、一時的なエラーとして判定され再送信のためのメールキューにたまってしまうと思います。
まあ、今の時代、Null MXに対応してないメールサーバーなんて、セキュリティ的にガバガバなんで、そんなのを使うなと声を大きくして言いたいけどね。
Null MX対応しているメールサーバーなら、応答コード556の拡張ステータスコード5.1.10(Permanent failure: Recipient address has null MX)を返すように規定されています。
そのためメールサーバーはbounceメールとして送り返してきます。
つまり、メールキューにはたまりません。
みんなも大好きなGmailもNull MX対応なので、気軽にexample.comを使って良いと思います!
spfレコードは?
example.comのspfレコードは、どのようになっているでしょうか?
nslookup -type=txt example.com
上のようにexample.comのTXTレコードをnslookupで確認してみましょう。
v=spf1 -all
と出ました。
-allは全てのドメインからメール送信しないという意味で、送信するドメインやIPアドレスが記述されていないので、メール送信しないドメインですと宣言していることになります。
DNS設定してますか?
貴殿の所有しているドメイン、メールサーバーが動いていないなら、Null MXとspfレコードの設定をしておきましょう。
Null MXは設定しなくても実害は低いですが、spfレコードは未設定だと、どこかのスパマーが貴殿のドメインを勝手に名乗って迷惑メールを送信するかもしれません。
spfレコードを上の項目のようにメール送信しない宣言をしておくだけで、スパマーが迷惑メールを送信しても、spfレコードの判定ステータスはFailになり、送信元のドメインを偽称している可能性が非常に高いと見なすことができます、そのためスパマーは、貴殿のドメインを勝手に名乗らなくなります。
結果として貴殿のドメインを守ることになります。
関連記事
こちらも参考にお読みください。
2020年8月の時点でNull MXに関する話が3記事しかない・・・そりゃNull MXが認知されない気がするね。
メールを受け取らないドメイン名に"Null MX"のリソースレコードを登録してみる
DNS MXレコードのpreference違いによるメール動作確認。特にpreference 0設定
世界と日本のメール送信ドメイン認証