投資を始める前に知っておきたい金融知識を2分程度で初心者目線解説!新動画シリーズ開始
昨今ではドメイン取得も手軽になり、独自のドメインを持っている人は増えていると思います。
そんな中、独自ドメインを持っている人がGmail環境宛にメール送付するとエラーとなってしまう事例が急増しています。
弊社も同様の事例に悩まされましたが、現在では解決しました。
また、PCの操作や本コラムについてのお問合せは電話・メール問わず受け付けておりません。
(執筆:RIA JAPAN広報部)
急にGmail宛メールがエラーになるようになった?
2023年5月下旬ころから弊社でGmail宛先へのメールが送付エラーとなってしまう事例が見られるようになりました。
下記のようなエラー文章でした(個人情報に関わる部分は伏字にしています)
550: 5.7.26 This mail is unauthenticated, which poses a security risk to the
5.7.26 sender and Gmail users, and has been blocked. The sender must
5.7.26 authenticate with at least one of SPF or DKIM. For this message,
5.7.26 DKIM checks did not pass and SPF check for [○○.com] did not
5.7.26 pass with ip: [○.○.○.○]. The sender should visit
5.7.26 https://support.google.com/mail/answer/81126#authentication for
5.7.26 instructions on setting up authentication. ~~~
エラー文章を読み解いてみると、SPFもしくはDKIMでの認証がないと「なりすまし」の可能性が否定できないため、
Gmailではブロックされてしまう。というものでした(今回はDKIMを割愛し、SPFに焦点を絞ってお話します)。
SPFって? なりすまし対策に必要なセキュリティ
独自ドメインを外部のメーラーを経由して送付している形式の場合です。
認証がない場合だと、他人がなりすましをしてメールを送付してしまう恐れがあります。
そのため、SPFレコードというセキュリティ認証が必要です。
例えば、「example.com」というドメインを持っていたと仮定します。
Yahoo!のメールサービスに接続し、「a@example.com」からメールを送付すると仮定します。
しかし、認証をしていない状態では「a@example.com」のアドレスから他の人が送付してしまう恐れがあります。
このなりすましを阻止するために、SPFレコードというセキュリティ認証が活きてきます。
少し強引かもしれませんがドラえもんの登場人物で例えてみます。
のび太(送信者)がしずかちゃん(受信者)にメールを書きました。
メールに送信者が「nobita.com」だと書いてあるのでしずかちゃんは(のび太さんからのメールだ)と思うでしょう。
しかし、例えばジャイアンやスネ夫がメールの送信者に「nobita.com」と偽ったらどうでしょうか。
しずかちゃんは「送信者:nobita.com」と書かれた署名しか見ることができないので(のび太さんからのメールだ)と騙されてしまうでしょう。
これがなりすましの事例です。
SPFレコードがある場合はなりすましを防ぐことができます。
まず、メールには内部データとしてどの住所(ドメイン)から送信されたかが記載されています。
「nobita.com」のオンライン上(DNS)に「この住所から送られたメールが本物です」というリスト(SPFレコード)を掲載します。
メールを受信したしずかちゃんは「nobita.com」にアクセスし、のび太の住所から送信されたメールであるかが確認できます。
(実際には、確認は受信側のメールサービスが自動的に行うので利用者が個別に確認する必要がありません)
SPFレコードは「この住所から送られたメールが本物です!」だと表示するリストであるとイメージしていただくとわかりやすいかと思います。
(ちなみに覚えなくても良いですが、SPFとはSender Policy Frameworkの略称です)
実際にSPFレコードを設定してみる。保存の際に注意しておきたいこと
SPFレコードを設定する際にはドメインの管理者ページにアクセスする必要があります。
「自分がドメインを取得した際のサービス名 SPFレコード」等で検索すると公式でのヘルプが見つかるかもしれません。
「Yahoo! ドメイン」ではTXTレコードの追加方法などは記載がありましたが、内容が簡素なものだったため、作業内容を備忘録として公開したいと思います。
SPFレコードの書き込み手順 Yahoo!ドメインでの一例
・ドメイン コントロールパネルにアクセスする。
・ドメインのコントロールパネルから、画面左側のメンテナンスツール→サーバー設定へアクセス。
・画面下部の「TXTレコードの追加」部分「テキスト情報」にSPFレコードを記載する。
・「追加」ボタン→「作成」ボタンで完了
(一例。環境によって別の操作や別のメニューとなる可能性があります)
これだけだとカンタンですが、記載する内容に注意事項があります。
一例を交えつつ記載させていただきます。
SPFレコードを記載しておく時に注意しておきたいこと
SPFレコードの中身
まず、重要なSPFレコードの部分ですが、下記の太字部分をコピーし、「example.com」の部分を送信したいサーバーのドメインに変更する必要があります。
v=spf1 include:example.com ~all
たとえば、Yahoo!メールサーバーを通して送りたい場合は
v=spf1 include:yahoo.co.jp ~all
となります。
Yahoo!ドメインでの追加時に気をつけておきたいこと
Yahoo!ドメインでの追加時、仕様か不具合かは不明ですが、SPFレコードに改行が設定されていなくても自動で改行されてしまう仕様があるようです。
そのため、もしYahoo!ドメインでSPFレコードを追加される際は自動で改行をされないように「"」ダブルクォーテーションをSPFレコードの前後に付けると解決する場合があります。
先ほどの事例をYahoo!ドメインで登録する仕様にすると
"v=spf1 include:yahoo.co.jp ~all"
となります。
しかし、他サービスの案内ではダブルクォーテーションは不要とするものも複数ありましたので、あくまで一例としてご認識いただければと思います。
複数サーバー登録したい場合、SPFレコードは一つに!
例えば、通常時のメールの他、メールマガジンサービスを別で活用している場合はそちらのサーバーアドレスも追記する必要があります。
あとは、(Gmail環境から独自ドメインのメールアドレスで送信したい!)という人もいるかもしれません。
その時は(SPFレコードを複数作成すれば……?)と考える人もいるでしょう。
しかし、SPFレコードは1つである必要があります。
例えば、先ほどの事例にGmailのサーバードメインも追加してみましょう。
v=spf1 include:yahoo.co.jp include:gmail.com ~all
しかし、このレコード内の「include」が10個を超えたりと極端に多くなるとエラーを引き起こす可能性もあるそうです。
極力、送信サーバーを増やさずにまとめた方がエラーの確率が下がる可能性が上がるかと思われます。
反映できたか確認したい時は
SPFレコードの設定が無事に完了できた場合、確認する必要があります。
「SPFレコード 確認」などでインターネット検索すると複数のサイトが出てきますが、WindowsPCの「コマンドプロンプト」を使用して確認するコードを載せておきます。
nslookup -q=txt example.com
コマンドプロンプトを起動したあと、デフォルトでは「C:\Users\(ユーザー名)>」と表示されているかと思います。
その後に続けて上記のコードを入力しEnterキーを入力してください。「example.com」の箇所はSPFレコードを確認したいドメインを記入してください。
しかし、SPFレコードはすぐに反映されるわけではありませんので注意が必要です。
反映されるまでどのぐらいか(TTL)を知る方法
入力したSPFレコードが反映されるまで時間がかかります。
とはいえ5分おきに反映されたか確認するのは極めて非効率的ですよね(私は最初そのように確認していました……)
そこで、コマンドプロンプトを使用して反映されるまでの時間を算出することができます。
先ほどと同じようにコマンドプロンプトを起動して
nslookup -debug example.com
と記入してEnterキーを押してください。ずらっと様々な情報が出てきますが、その中でも下部に「ttl」という数値が表示されます。
この場合はこのように表示されました(個人情報に関わる部分は伏字にしています)。
ANSWERS:
-> example.com
internet address = ○.○.○.○
ttl = 3252 (54 mins 12 secs)
このTTLという数値が一時保存ファイル(キャッシュ)として残る時間です。
つまり、この事例ですと54分12秒後にSPFレコードなどの情報が更新されるということですね。
(ちなみにYahoo!ドメインではTTLの基準値は3600秒、つまり1時間に1度更新されるようでした)
SPFレコードが設定されたか、Gmailで確認する
ここまでの設定で、SPFレコードが設定できた場合はGmail宛にメールが送付できるようになったかと思います。
試しに所持しているGmailアドレス宛にテストメールを送付してみましょう。
無事に受信ができれば成功です。成功できていない場合はSPFレコードが設定されたかどうかを再確認してみてください。
また、PCのGmail環境では画面右側の「…」マークより「メッセージのソースを表示」を選択することでより詳細な情報を確認できます。
「件名」の下に「SPF」という項目が表示され、「PASS」と表示されていればSPFレコードの設定は成功です。
最後に
以上が、私が実際に行ったSPFレコードの適用~確認方法です。
この事例と全く同じ環境の方は少ないかもしれませんが、この備忘録がどなたかの役に立つならば幸いです。
長文でしたが、ここまでお読みいただきありがとうございました。
※また、繰り返しになりますが、本コラムは一例です。
PCの操作や本コラムについてのお問合せは電話・メール問わず受け付けておりません。