あらすじ
お客さんから、Gmail宛にメール送っても届かない!という連絡が来ました。
まぁ最近流行りのアレだろうなと思いつつ調査に乗り出しました。
環境
諸々の事情により、構成はなかなかにカオスな状態
ドメイン、ネームサーバ: お名前.com
WEBサーバ: Xserver
メールサーバ: Bizメール&ウェブ
解決する
マニュアルにある記載はこうなってます。
"v=spf1 +a include:_spf.mwprem.net ~all"
ですが、これはWEBサーバもメールサーバも両方 Bizメール&ウェブ
を使う前提の記述方法です。
今回のように Webサーバがすでに外部に引っ越し済みの場合、この記述ではSPFがPASSしません。
解決方法を3つ紹介します。
# 変更前の記述
"v=spf1 +a include:_spf.mwprem.net +a:sv***.xserver.jp include:spf.sender.xserver.jp ~all"
※ 通常のメールとは別に、システムから送信するメールがXserverから送っているのでその設定が含まれています。
解決方法1 ip4 を記述する
SPFの記述の仕方はいくつかありますが、その中にIPv4を直接指定する方法があります。
この記述方法はDNSサーバへのリクエスト数が少ないため、負荷が軽減されます。(実感できるかどうかは・・・)
デメリットとしては、サーバのIPが変更された際に、このレコードも変更しないといけなくなり、人的ミスが懸念されます。(往々にして記憶からさっぱり消え去った頃にこういった事態は起きるものです。)
# 記述例: +a を ip4:192.168.1.1 に書き換えています。
"v=spf1 ip4:192.168.1.1 include:_spf.mwprem.net +a:sv***.xserver.jp include:spf.sender.xserver.jp ~all"
解決方法2 a: を記述する
メールソフトに設定する都合上、 Bizメール&ウェブ
のIPもサブドメインなどで設定しているかと思います。
このサブドメインをSPFのレコードに追加してあげます。
この方法は上記のメリットとデメリットを逆転した書き方です。
ただし、ちゃんと正しい送信サーバを設定しているか確認してください。
# 記述例: +a を a:smtp.example.com に書き換えています。
"v=spf1 a:smtp.example.com include:_spf.mwprem.net +a:sv***.xserver.jp include:spf.sender.xserver.jp ~all"
解決方法3 +mx を記述する(おすすめ)
多くの場合、送信サーバと受信サーバは同じだと思います。
その場合、このやり方が一番記述量を少なくできる(≒ミスしにくい)方法です。
# 記述例: +a を +mx に書き換えています。
"v=spf1 +mx include:_spf.mwprem.net +a:sv***.xserver.jp include:spf.sender.xserver.jp ~all"
追加の解説(蛇足)
+a
という記述は、メールアドレスのドメイン( taro@exasmple.com
の example.com
の部分)のAレコードに指定されているIPアドレスを指定するものです。
本来のWebとMailが同じサーバで運用されている場合には問題になりませんが、今回のように別々のサーバで運用している場合には使えません。
なので、他の方法でIPアドレスを指定する必要があります。
そもそもSPFレコードは「このドメインでは、このIPのリストに含まれているIPのいずれかからしか送りませんよ。」という意思表示です。
なのでリストに含まれないIPアドレスからのメールは迷惑メール判定されやすくなります。
おわりに
実際の案件では、DKIMやDCMARの設定も追加しました。
こちらについては今回は特に罠を踏まなかったため、省略しています。
SPFだけは何も考えずに設定したので、なかなかPASSしてくれず右往左往しました。
ちゃんと確認したらすぐに分かりそうなことなのに・・・戒めのために記事に残します。
よいSPFライフを!