$ cd ~/tool

$ DNS / 逆引き(PTR) 確認

ドメインのA/AAAA/MX/NS/SOA/TXTレコードと、SPF・DMARCのメール認証設定を表示。IPは逆引き(PTR)に対応。

ドメイン → A/AAAA/MX/NS/SOA/TXT(SPF/DMARC判定つき)。IPアドレス → 逆引き(PTR)。
DKIMはセレクタ名が必要です(受信メールのヘッダ DKIM-Signatures= で分かります)。

how to read — 結果の読み方

ドメインを入れると、まずメール到達性に直結する3点(MX・SPF・DMARC)を信号色で判定し、その下に全レコードを並べます。各項目の意味は次の通りです。

A / AAAA
ドメインがどのIPアドレスを指すか(A=IPv4、AAAA=IPv6)。Webサイトの接続先です。
MX(メール)
そのドメイン宛メールを受け取るサーバー。無いとそのドメインでメールを受信できません(メール運用していなければ無くて正常)。
NS / SOA
NSはそのドメインを管理するネームサーバー、SOAはゾーンの管理情報(Serial=更新版番号やTTLなど)。
TXT / SPF
TXTは各種の設定文字列。中でも v=spf1 で始まるSPFが重要で、「このドメインのメールを送ってよい送信元」を宣言します。末尾の -all(厳格)/~all(緩い・softfail)/+all(危険)が肝です。
DMARC
SPF/DKIMの検証に失敗したメールの扱いを決める方針(_dmarc.ドメイン のTXT)。p=reject(拒否)/p=quarantine(隔離)/p=none(監視のみ)。p=none は実際にはブロックしません
DKIM(任意)
セレクタ名を入れると セレクタ._domainkey.ドメイン のTXT(公開鍵)の有無を確認します。SPF・DMARCと合わせ、メール認証の三点セットが揃っているかを点検できます。
PTR(逆引き)
IPアドレス → ホスト名。メール送信サーバーでは、正引き(A)と双方向で一致する逆引きの設定がほぼ必須です。

how it works — DNSとメール認証のしくみ

DNSは「名前→IP」などを引くインターネットの電話帳。Webもメールも、通信の前にまずDNSを引きます。とくにメールにはなりすまし対策の三点セットがあり、ここがメール到達性を左右します。

なぜなりすまされるのか。 SPFの末尾が ~all(softfail)だと、許可外のサーバーから送られても受信側は「やんわり疑う」だけで、多くは受信してしまいます。-all(hardfail)にして初めて明確な拒否対象になります。さらにDMARCが p=none のままだと「認証に失敗しても何もしない(監視するだけ)」なので、すり抜けたなりすましがそのまま相手に届きますp=quarantine / p=reject にして初めて防御として機能します。

2024年以降、設定は「あって当たり前」になりました。 GmailやYahoo!メールが送信者ガイドラインを厳格化し、SPF・DMARCを設定していないドメインからのメールは迷惑メール扱いされやすく、一斉送信では受信拒否されることもあります。自社ドメインでメールを出すなら、SPF/DKIM/DMARCの設定はもはや必須と考えてください。

troubleshooting — よくあるトラブルと見分け方

自社のメールが迷惑メール扱いされる/届かない
まずSPFに実際の送信サーバー(自社サーバーや利用中のメール配信サービス)が含まれているかを確認します。緩い ~all-all へ。あわせてDKIM署名を設定し、DMARCは p=none で監視→問題なければ quarantinereject へ段階的に強化します。送信元IPがブラックリスト入りしていないかは RBLチェック で確認できます。
DMARCを設定したのに効果がない
p=none監視(レポート収集)のみで、実際のブロックはしません。レポートで正当なメールがすべて認証を通っていることを確認してから、p=quarantinep=reject と上げて初めて、なりすまし拒否の効果が出ます。
SPFを設定したのにエラー(PermError)になる
SPFは include:amx などDNS参照を伴う項目が合計10回を超えると PermError となり、SPF自体が無効扱いになります。include: は入れ子で意外と膨らむので、使うサービスを絞る・不要な include を削るなどして10回以内に収めてください。
DKIMのセレクタ名が分からない
そのドメインから届いたメールを開き、ヘッダの DKIM-Signature: 行にある s= の値がセレクタ名です(例 s=google)。上のフォームのセレクタ欄に入れると セレクタ._domainkey.ドメイン のTXT(公開鍵)の有無を確認できます。
設定を変えたのに反映されない
DNSはTTL(キャッシュの有効時間)のぶん、古い値が各所に残ります。dig でTTLを確認し、その時間が過ぎるまで待ちます。変更直前にTTLを短くしておくと切り替えが速くなります。
逆引き(PTR)が「設定なし」になる
共用環境では個別に設定できないことがあります。固定IPで自前のメールサーバーを運用するなら、ISP/データセンターにPTRの設定を依頼してください。逆引きと正引き(A)が双方向で一致している状態(FCrDNS)が理想で、これが無いと受信側に弾かれやすくなります。
MXが無い/メールが受け取れない
そのドメインでメールを受信するにはMXレコードが必要です。レンタルサーバーやメールサービスが指定するMX(とSPF)を正しく設定してください。Webだけで運用しメールを使わないドメインなら、MXが無くても問題ありません。

cli — 手元のコマンドでも確認できます

PS> Resolve-DnsName example.com
PS> Resolve-DnsName -Type MX example.com
PS> Resolve-DnsName -Type TXT example.com # SPF
PS> Resolve-DnsName -Type TXT _dmarc.example.com # DMARC
PS> Resolve-DnsName 192.0.2.1 # 逆引き
$ dig example.com +short
$ dig MX example.com +short
$ dig TXT example.com +short
$ dig TXT _dmarc.example.com +short
$ dig -x 192.0.2.1 +short # 逆引き

WindowsはWindows標準の nslookup も使えます。TTLまで見たいときは dig が便利です。

関連ツール