5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【図解】「メールが届かない!」アプリを疑う前にMXレコードを確認すべき理由と解決法

5
Last updated at Posted at 2026-03-24

1.はじめに

システムやアプリケーションからメールを送信した際、「メールが届かない(バウンスした)」というトラブルに遭遇したことはありませんか?
そんな時、ついアプリケーション側のプログラムのエラーや、送信元サーバー(SendGridやSESなど)の設定を疑ってしまいがちです。

しかし、実は根本的な原因が 「宛先ドメインのDNS(特にMXレコード)の設定」 にあるケースが非常に多いのです。

この記事では、メール送信時の「届かない(バウンス)」トラブルと、その原因になりやすい「MXレコード」の関係を整理し、エンジニアがトラブル時にまず確認すべきポイントを解説します。

2. 前提知識のおさらい

そもそも、MXレコードやバウンスとは何でしょうか?簡単に整理します。

MXレコード(Mail eXchanger)とは?

DNSレコードの一種で、「そのドメイン宛のメールを、どのサーバーに届けるべきか」 を指定する「宛先案内状」のようなものです。

優先度(Priority)の概念

複数のMXレコードを設定することができます。数値が小さい(優先度が高い)サーバーから順に配送を試みる仕組みになっており、メインサーバーとバックアップサーバーを分ける際などに使われます。

💡 豆知識:なぜ優先度に「10」や「100」がよく使われるのか?

実際のDNS設定を見ると、優先度に10や100といった数字がよく使われています。これは「優先度がとても低いから」ではなく、「とりあえずキリの良い10や100をメインにしておいて、将来もし他のサーバーを前後に足したくなった時のために、前後の数字(1〜9や11〜99など)を空けておこう」 という、システム管理者たちの昔からの知恵(慣習)によるものです。

メールのバウンス(Bounce)とは?

送信したメールが相手に届かず、差し戻されてしまうことです。大きく2種類に分かれます。

ハードバウンス(Hard Bounce)

恒久的なエラー。宛先のメールアドレスが存在しない、ドメインが存在しないなど、何度再送しても届かない 状態です。

ソフトバウンス(Soft Bounce)

一時的なエラー。相手のメールボックスが容量オーバーになっている、相手サーバーが一時的にダウンしているなど、時間を置けば届く可能性がある状態です。

3. MXレコードとバウンスはどう関係しているのか?(4つのケース)

ここからが本題です。「相手先のMXレコードになんらかの問題がある」ことで発生するバウンスのシナリオを、4つのケースに分けて解説します。

ケースA:MXレコードが存在しない(未設定・引き忘れ)

結果: 即座にハードバウンス

解説: 送信側サーバーがDNSに問い合わせても「このドメインのメールの送り先がわからない」と判断され、即座にエラーが返ります。相手側がドメインを取得した直後や、サーバー移行時のDNS設定漏れで頻発します。

ケースB:MXレコードの向け先(バリュー)が間違っている

結果: ハードバウンス、またはタイムアウト(ソフトバウンスを経てハードバウンス)

解説: レコードの記述にタイポがある、あるいは解約済みの古いメールサーバーを指定したままになっているケースです。無関係なサーバーに接続に行き拒否されるか、応答がなくタイムアウトになります。

ケースC:優先度(Priority)設定のミス

結果: メインサーバー障害時にバウンスが発生する

解説: 複数のMXレコードの優先度をすべて同じに設定してしまったり、バックアップとして指定した側のサーバーが死んでいるケースです。メインサーバーが一時的にダウンした際、本来ならサブにフォールバックしてほしいのに、うまく機能せずにバウンスしてしまいます。

ケースD:DNSキャッシュの残留(TTLの問題)

結果: 移行作業直後に一時的なバウンスや不達が発生する

解説: 相手側がメールサーバーを移行した直後によく起こります。「DNSの浸透待ち」と呼ばれることもありますが、正確には 「古いDNSキャッシュ(TTL)の有効期限が切れていない」 状態です。世界中のDNSサーバーのキャッシュが更新されるまでは、古いMXレコードを参照する通信と新しいMXレコードを参照する通信が混在し、不安定になります。

4. バウンスを防ぐ・解決するためのトラブルシューティング

実際にバウンスが発生した際、どのように調査すればよいか、実践的な方法を紹介します。

① エラーメール(NDR)のログを読む

バウンスした際に返ってくるエラーメール(Non-Delivery Report)には、原因のヒントが隠されています。以下のキーワードやステータスコードを探しましょう。

Diagnostic-Code: smtp; 550 5.4.4 <user@example.com>: Recipient address rejected: Domain not found (NXDOMAIN)

NXDOMAIN / Domain not found: ドメイン自体が存在しない、または名前解決ができていません(ケースAなど)。

Connection timed out: MXレコードは引けたものの、その先のサーバーに繋がりません(ケースBなど)。

5.x.x のコード: 致命的なエラー(ハードバウンス)を示します。

② MXレコードをコマンドで確認する

原因がDNSにありそうなら、実際にターミナルからコマンドを叩いてみましょう。
digコマンドの例

$ dig example.com MX +short
10 mail.example.com.
20 backup-mail.example.com.

何も返ってこない場合はMXレコードが設定されていません。
nslookup コマンドの例(Windows等)

$ nslookup -type=MX example.com

5. 補足:SPF / DKIM / DMARC との違い

「DNSに設定するメール関連のレコード」というと、SPF・DKIM・DMARC を思い浮かべる方も多いと思います。これらもバウンスに関わりますが、役割が全く異なります。混同しないように整理しておきましょう。

MXレコード: メールを 「受信」するための経路案内

SPF / DKIM / DMARC: メールを 「送信」する際の身元証明(なりすまし・スパム扱いによるバウンスを防ぐため)

MXレコードは「相手の家(サーバー)の住所」、SPF/DKIM/DMARCは「自分が送る手紙の署名・身分証」とイメージすると分かりやすいです。

6. まとめ

MXレコードはメール配送の要であり、設定ミスや名前解決の失敗は即座にバウンスに繋がります。
バウンスが発生した際は、アプリのバグを疑う前に、まずエラーログを確認する癖をつけましょう。
そして、dig コマンドやWebツールを使って、宛先ドメインのMXレコードが正しく引けるかを調べるのが解決への近道です。

メール配信のトラブルシューティングにおいて、DNSの知識は間違いなく強力な武器になります。この記事が、謎のバウンスに悩むエンジニアの助けになれば幸いです!

5
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?