2016年7月28日
「さくらのレンタルサーバー」を送信メールサーバーとして使い、GMailに送信すると、送信元の偽装を疑う警告が表示されることがあるが、DNSのSPFレコードを使う設定を行えば、問題を解決できる。
筆者は「さくらのレンタルサーバー」のライトプランを使っているが、このレンタルサーバーは、メールサーバーとしても利用できる。
ところが、レンタルサーバーを送信用のメールサーバとして使い、パソコンからGMail宛に、以下の電子メールを送ったところ、受け取った側で、未認証メールとして表示されてしまった。
Gmailを受け取ったスマホの画面では、送信元が確認できないため、先ほどのメールは以下のように、異常なメールとして表示されてしまった。
GMailのサーバとしては、先ほどのメールが、本当に"ts.skr.jp"から送られてきたメールなのか判断できないので、送信元を偽った疑いのあるメールとして表示しているのだ。
では、GMailのサーバはどうやって、電子メールの送信元が、本来の送信元かを確かめているのだろうか。
電子メールを送るときは、送信メールサーバ(さくらのレンタルサーバ)から、GMailのメールサーバにメールのデータが送られるが、GMailのメールサーバに対しては、ユーザ名やパスワードを送って認証しているわけではない。
いろいろと調べた結果、未承認メールとなった理由が、分かった。GMailのメールサーバは、送信元ドメイン"ts.skr.jp"からのメールを送ることになっているサーバをDNSで検索したが、実際にメールを送ってきたwww274.sakura.ne.jpが、DNSの検索でヒットしなかったので、送信元として適切ではないと判断していたようだ。
DNSサーバに「ドメイン名ts.skr.jpからのメールを送信するメールサーバは、www274.sakura.ne.jpです」という趣旨の登録を行ったところ、問題が解決した。
このような、メールサーバ同士で送信元のサーバが正当かを確かめるために、DNSサーバに持たせるレコードを「SPFレコード」という。
「さくらのレンタルサーバー」でSPFレコードを設定するには、ユーザが直接DNSの設定ファイルを書くのではなく、設定画面でチェックボックスを1つ押すだけでよい。
操作方法は、ドメインのSPFレコードの設定(公式サイト)に書いてあるので、参考にしてみるとよいだろう。
この設定を行ったところ、レンタルサーバーを送信メールサーバとして、GMailにメールを送信しても、未承認の表示は出なくなった。
ちなみに、「さくらのレンタルサーバー」に最近申し込んだユーザに対しては、最初からSPFレコードが設定されているそうなので、この問題が発生するのは、古くからのユーザだけらしい。
DNSサーバにアクセスして、どんな設定が追加されたのか、確かめてみた。
Linuxのターミナルから、 nslookup -type=TXT ts.skr.jp と入力したところ、以下のように ts.skr.jp からのメールは www274.sakura.ne.jp から送信する旨の結果を得られた。
GMailのサーバは、ドメイン"ts.skr.jp"からのメールを受け取ったときは、上記の検索を行い、メールを送ってきた相手がwww274.sakura.ne.jpかを調べることで、送信元が偽装されていないかを確認できる。
なお、上記の送信メールサーバは、エンドユーザがメールを送信する際には、SMTP認証でユーザ名とパスワードを要求するので、本来のユーザ以外が不正にメールを発信できないようになっている。
ちなみに、www274.sakura.ne.jpのIPアドレスは、以下のようにIPv4とIPv6の両方に対応している。電子メールも、IPv6のネットワークを経由して送られる可能性がある時代になっているようだ。
せっかくなので、送信メールサーバが、GMailのメールサーバに、メールを届けるまでの仕組みも調べてみた。
GMailのドメインは"gmail.com"だが、gmail.comというホスト名のサーバに、メールを送るとは限らない。
DNSの「MXレコード」で、"gmail.com"を検索し、ヒットしたサーバに届けるのが、正しい対応だ。
実際に gmail.com で検索したところ、以下のように5つのホスト名がヒットした。
ホスト名とともに、数値が表示されているが、この数値が少ないほど、優先してメールを届けるべきサーバだ。
従って、数値が"5"と最も少ない"gmail-smtp-in.l.google.com."を最優先して、メールを届けることになる。最優先のサーバにつながらない場合は、次に数値が大きいサーバにメールを送ればよい。それでもだめなら、その次に数値が大きいサーバに送ることになる。
サーバを5台用意しているので、大量にメールを受け取り続けて、一部のサーバがダウンしても、そう簡単にはメールを受け取りそこねないようになっているようだ。
電子メールは、パソコン→(レンタルサーバやプロバイダの)送信メールサーバ→相手先のメールサーバ、の順に送られる(ことが多い)。
メールの差し出し元のドメインが偽装されていないかは、相手先のメールサーバが、DNSのSPFレコードを検索して、メールを送ってきたサーバがSPFレコードに登録されているかを調べることで、判断できる。
メールを送る相手先のメールサーバは、DNSのMXレコードを調べれば分かる。
結局のところ、さくらのレンタルサーバー(ライトプラン)を使っている私の環境で、電子メールが届くまでの流れは、以下の絵にまとめることができる。
前のページ:「さくらのレンタルサーバー」のホームページをIPv6で公開してみた
トップページ → なにげなく自由研究(もくじ) → SPFの設定で「さくらのレンタルサーバー」からのメールをGMailに正しく送る
著者のメールアドレス・Twitterアカウントは、トップページからご覧ください。
製作・著作:杉原 俊雄(すぎはら としお)
(c)2016 Sugihara Toshio. All rights reserved.