Gmailへ届かない原因とDNS設定確認

Gmailへ届かない原因とDNS設定

Gmailへ届かない原因とDNS設定確認ポイント

メールサーバを構築した直後によく発生するトラブルの一つが「Gmailへメールが届かない」という問題です。

SMTPサーバ自体は正常に動作しており、社内や他のメールサーバへは送信できるにもかかわらず、Gmailだけ届かないケースがあります。

近年のGmailは迷惑メール対策を非常に強化しており、送信元メールサーバの信頼性を様々な観点から評価しています。

そのためDNS設定に不備があると、迷惑メールフォルダへ振り分けられたり、受信拒否されたりすることがあります。

本記事ではGmailへ届かない場合に確認すべきDNS設定を中心に解説します。

まずはメールログを確認する

最初にSMTPサーバのログを確認します。

Postfixの場合は以下です。

# tail -f /var/log/maillog

または
# journalctl -u postfix -f

配送エラーの有無を確認します。

Gmailへ届かないパターン

主に次のようなケースがあります。

  • 送信自体に失敗している
  • Gmail側で受信拒否されている
  • 迷惑メールフォルダへ入っている
  • 配送遅延している

まずどの状況なのかを把握することが重要です。

DNS設定が原因になる理由

Gmailは送信元メールサーバの信頼性評価を行っています。

その際にDNS情報を利用します。

確認対象は以下のようなものです。

  • MXレコード
  • PTRレコード
  • SPF
  • DKIM
  • DMARC

これらに問題があると到達率が低下する可能性があります。

確認1 MXレコード

まず受信ドメインのMXレコードを確認します。

$ dig MX example.com

正しいメールサーバが登録されていることを確認します。

MXレコード例

example.com.  IN MX 10 mail.example.com.

メール受信サーバを指定しています。

確認2 Aレコード

MXレコードで指定したホスト名にAレコードが必要です。

$ dig A mail.example.com

IPアドレスが返ることを確認します。

Aレコード例

mail.example.com.  IN A 203.0.113.10

SMTPサーバのIPアドレスです。

確認3 PTRレコード

Gmailでは逆引きDNSも重要です。

以下で確認できます。

$ dig -x 203.0.113.10

ホスト名が返ることを確認します。

PTRレコード例

203.0.113.10
      ↓
mail.example.com

逆引きDNSが未設定の場合、評価が低下する可能性があります。

確認4 FCrDNS

正引きと逆引きの整合性も重要です。

mail.example.com
      ↓
203.0.113.10
      ↓
mail.example.com

相互に一致していることを確認します。

確認5 SPFレコード

送信元認証の基本です。

$ dig TXT example.com

SPFレコードを確認します。

SPF設定例

v=spf1 ip4:203.0.113.10 -all

送信を許可するSMTPサーバを定義します。

SPF未設定で起こること

Gmailは即拒否するとは限りません。

しかし迷惑メール判定の要因になる場合があります。

現在では設定が推奨されています。

確認6 DKIM署名

DKIMはメール改ざん防止と送信者認証を行います。

受信メールヘッダを確認します。

dkim=pass

表示されれば認証成功です。

DKIM公開鍵確認

DNSへ登録されているか確認します。

$ dig TXT  mail._domainkey.example.com

公開鍵が取得できれば正常です。

確認7 DMARC

DMARCはSPFとDKIMの結果を利用します。

$ dig TXT  _dmarc.example.com

設定の有無を確認します。

DMARC設定例

v=DMARC1; p=reject

認証失敗メールを拒否します。

Gmailが重視する項目

一般的に以下が重要とされています。

  • PTRレコード
  • SPF
  • DKIM
  • DMARC
  • 送信実績

総合的な評価によって到達率が決まります。

ブラックリスト登録確認

送信元IPアドレスがブラックリストへ登録されている場合があります。

過去のスパム送信などが原因になることがあります。

到達率低下の原因となります。

メールキュー確認

SMTPサーバ側で配送待ちになっていないか確認します。

# mailq

または
# postqueue -p

配送エラーの調査に役立ちます。

SMTP接続確認

GmailのSMTPサーバへ接続できるか確認します。

$ telnet gmail-smtp-in.l.google.com 25

接続できればネットワーク上は問題ありません。

HELO/EHLO名の確認

SMTPサーバ名も重要です。

例えば以下のような設定です。

myhostname =  mail.example.com

逆引きDNSと一致していることが推奨されます。

自宅回線で発生しやすい問題

自宅回線では次の問題があります。

  • PTR設定不可
  • 動的IPアドレス
  • ブラックリスト登録
  • 25番ポート制限

メールサーバ運用には向いていません。

VPSでよくある問題

VPSではPTRレコード設定忘れがよくあります。

BINDへ設定しただけでは反映されない場合があります。

管理画面で設定が必要なことがあります。

確認コマンドまとめ

MX確認です。
$ dig MX example.com

Aレコード確認です。
$ dig A mail.example.com

PTR確認です。
$ dig -x 203.0.113.10

SPF確認です。
$ dig TXT example.com

DKIM確認です。
$ dig TXT  mail._domainkey.example.com

DMARC確認です。
$ dig TXT  _dmarc.example.com

Gmailへ届かない時の調査順序

  1. メールログ確認
  2. MX確認
  3. Aレコード確認
  4. PTR確認
  5. SPF確認
  6. DKIM確認
  7. DMARC確認
  8. ブラックリスト確認

この順番で調査すると効率的です。

実務で多い原因

実際の現場では以下が特に多く見られます。

  • PTRレコード未設定
  • SPF設定漏れ
  • DKIM未設定
  • DMARC未設定
  • ブラックリスト登録

メールサーバ構築後は必ず確認しましょう。

まとめ

Gmailへメールが届かない場合、DNS設定が原因となっているケースは非常に多くあります。

特にPTRレコード、SPF、DKIM、DMARCは重要な確認ポイントです。

また正引き・逆引きの整合性やSMTPサーバ名の設定も確認する必要があります。

メール到達率を向上させるためには、SMTPサーバだけでなくDNS設定も含めて総合的に確認することが重要です。