SPFの設定で「さくらのレンタルサーバー」からのメールをGMailに正しく送る

2016年7月28日


「さくらのレンタルサーバー」を送信メールサーバーとして使い、GMailに送信すると、送信元の偽装を疑う警告が表示されることがあるが、DNSのSPFレコードを使う設定を行えば、問題を解決できる。

GMailに送ったら変なメッセージが出た

筆者は「さくらのレンタルサーバー」のライトプランを使っているが、このレンタルサーバーは、メールサーバーとしても利用できる。

ところが、レンタルサーバーを送信用のメールサーバとして使い、パソコンからGMail宛に、以下の電子メールを送ったところ、受け取った側で、未認証メールとして表示されてしまった。

パソコンで送ったメール

Gmailを受け取ったスマホの画面では、送信元が確認できないため、先ほどのメールは以下のように、異常なメールとして表示されてしまった。

受け取った側で未認証の表示

GMailのサーバとしては、先ほどのメールが、本当に"ts.skr.jp"から送られてきたメールなのか判断できないので、送信元を偽った疑いのあるメールとして表示しているのだ。

DNSにSPFレコードを設定して解決

では、GMailのサーバはどうやって、電子メールの送信元が、本来の送信元かを確かめているのだろうか。

電子メールを送るときは、送信メールサーバ(さくらのレンタルサーバ)から、GMailのメールサーバにメールのデータが送られるが、GMailのメールサーバに対しては、ユーザ名やパスワードを送って認証しているわけではない。

いろいろと調べた結果、未承認メールとなった理由が、分かった。GMailのメールサーバは、送信元ドメイン"ts.skr.jp"からのメールを送ることになっているサーバをDNSで検索したが、実際にメールを送ってきたwww274.sakura.ne.jpが、DNSの検索でヒットしなかったので、送信元として適切ではないと判断していたようだ。

DNSサーバに「ドメイン名ts.skr.jpからのメールを送信するメールサーバは、www274.sakura.ne.jpです」という趣旨の登録を行ったところ、問題が解決した。

このような、メールサーバ同士で送信元のサーバが正当かを確かめるために、DNSサーバに持たせるレコードを「SPFレコード」という。

SPFレコードを使いメールが届く仕組み

「さくらのレンタルサーバー」でSPFレコードを設定するには、ユーザが直接DNSの設定ファイルを書くのではなく、設定画面でチェックボックスを1つ押すだけでよい。

操作方法は、ドメインのSPFレコードの設定(公式サイト)に書いてあるので、参考にしてみるとよいだろう。

この設定を行ったところ、レンタルサーバーを送信メールサーバとして、GMailにメールを送信しても、未承認の表示は出なくなった。

ちなみに、「さくらのレンタルサーバー」に最近申し込んだユーザに対しては、最初からSPFレコードが設定されているそうなので、この問題が発生するのは、古くからのユーザだけらしい。

SPFレコードを検索してみた

DNSサーバにアクセスして、どんな設定が追加されたのか、確かめてみた。

Linuxのターミナルから、 nslookup -type=TXT ts.skr.jp と入力したところ、以下のように ts.skr.jp からのメールは www274.sakura.ne.jp から送信する旨の結果を得られた。

ts.skr.jpからのメールを送るメールサーバを示すレコード

GMailのサーバは、ドメイン"ts.skr.jp"からのメールを受け取ったときは、上記の検索を行い、メールを送ってきた相手がwww274.sakura.ne.jpかを調べることで、送信元が偽装されていないかを確認できる。

なお、上記の送信メールサーバは、エンドユーザがメールを送信する際には、SMTP認証でユーザ名とパスワードを要求するので、本来のユーザ以外が不正にメールを発信できないようになっている。

ちなみに、www274.sakura.ne.jpのIPアドレスは、以下のようにIPv4とIPv6の両方に対応している。電子メールも、IPv6のネットワークを経由して送られる可能性がある時代になっているようだ。

送信メールサーバのIPアドレス

メールを届ける先のサーバはDNSのMXレコードで検索

せっかくなので、送信メールサーバが、GMailのメールサーバに、メールを届けるまでの仕組みも調べてみた。

GMailのドメインは"gmail.com"だが、gmail.comというホスト名のサーバに、メールを送るとは限らない。

DNSの「MXレコード」で、"gmail.com"を検索し、ヒットしたサーバに届けるのが、正しい対応だ。

実際に gmail.com で検索したところ、以下のように5つのホスト名がヒットした。

gmail.comのMXレコード

ホスト名とともに、数値が表示されているが、この数値が少ないほど、優先してメールを届けるべきサーバだ。

従って、数値が"5"と最も少ない"gmail-smtp-in.l.google.com."を最優先して、メールを届けることになる。最優先のサーバにつながらない場合は、次に数値が大きいサーバにメールを送ればよい。それでもだめなら、その次に数値が大きいサーバに送ることになる。

サーバを5台用意しているので、大量にメールを受け取り続けて、一部のサーバがダウンしても、そう簡単にはメールを受け取りそこねないようになっているようだ。

まとめ

結局のところ、さくらのレンタルサーバー(ライトプラン)を使っている私の環境で、電子メールが届くまでの流れは、以下の絵にまとめることができる。

SPFレコードとMXレコードを調べてメールが届く仕組み

参考になるサイト


前のページ:「さくらのレンタルサーバー」のホームページをIPv6で公開してみた


トップページなにげなく自由研究(もくじ) → SPFの設定で「さくらのレンタルサーバー」からのメールをGMailに正しく送る
著者のメールアドレス・Twitterアカウントは、トップページからご覧ください。

製作・著作:杉原 俊雄(すぎはら としお)
(c)2016 Sugihara Toshio. All rights reserved.