導入・設定ガイド

Google WorkspaceのSPFレコード設定・確認方法。既存SPFへの統合とspf=passの確認まで

目次
  1. SPFレコードとは
  2. 手順1:自社ドメインのメール送信元をすべて洗い出そう
  3. 手順2:現在のSPFレコードを確認しよう
  4. 手順3:登録するSPFレコードの値を決めよう
  5. Google Workspaceだけで送信する場合
  6. 外部サービスからも送信する場合(既存レコードへの統合)
  7. 手順4:DNSにSPFレコードを登録しよう
  8. 手順5:SPF認証に合格しているか確認しよう(spf=pass の確認)
  9. 1. DNSにSPFレコードが公開されているか確認する
  10. 2. テストメールのヘッダーで spf=pass を確認する
  11. SPF・DKIM・DMARCの関係
  12. SPFを設定してもメールが届かない場合
  13. まとめ – SPFは送信元を洗い出してから1レコードで設定しよう

こんにちは。

今回は、Google Workspaceで忘れがちなメール設定である「SPFレコード設定」についてご紹介します。

送ったメールが相手に届かなかったり、迷惑メールに入ってしまう場合、原因のひとつとしてSPFレコードが未設定・設定誤りになっていることが考えられます(到達性はSPFだけで決まるものではないため、他の要因は記事後半で整理します)。

この記事でわかること
  • 設定前に「自社ドメインからメールを送っているサービス(送信元)」をすべて洗い出す方法
  • SPFレコードは1ドメインに1つだけ。既存のSPFレコードがある場合は、新しく追加せず既存レコードに統合する
  • Google Workspaceだけで送信する場合の値 v=spf1 include:_spf.google.com ~all
  • 反映には最大48時間ほどかかる場合があること、テストメールのヘッダーで spf=pass を確認して完了とすること
  • SPF・DKIM・DMARCの関係と、Gmail宛ての送信量による要件の違い

なお、同じ用途の設定として「DKIM認証」という方法もあります。Google公式はSPFに加えてDKIMとDMARCの設定も推奨しているため、今回ご紹介するSPFレコードとセットで設定しておくことをおすすめします。DKIM認証方法はこちらの記事をご覧ください。

DKIM認証を設定してGoogle Workspaceのメール到達率を上げよう

SPFレコードとは

SPF(Sender Policy Framework)レコードとは、メールが本当にそのドメインから送られてきたものかどうか、つまり「なりすましメールかどうか」を判断する仕組みです。

相手のログイン情報や、クレジットカード情報を盗み取るフィッシングメールを始めとするスパムメールは、送信元のメールアドレスを改ざんして、あたかもそのドメインのメールであるかのようになりすましてメールを送信してきます。

SPFレコードが設定されていないと、あなたの(受信)メールサーバーは、本当にそのメールがそのサービスから送信されてきたのかどうか解りません。

下記は、SPFレコードが設定されていない場合のメール送信のイメージです。

鈴木さん(suzuki@aaa.com)から、本物のメールが送られるケース(青)と、スパムメールが送られるケース(赤)で記載しています。スパムメールは偽物のメールサーバーから相手の(受信)メールサーバーに送信していますが、受信メールサーバーでは、相手サーバが本物か偽物かわからないため、スパムメールも受け取ってしまっています。

Googleなどの強力な迷惑メールフィルタを備えた受信メールサーバーである場合、SPFレコードが設定されていなくても、タイトルやメールの文面からスパムメールと判断してくれる場合もあります。

SPFレコードは、Google Workspaceのドメイン所有権の確認のように、DNSの特性を利用して、そのメールドメインの送信メールサーバーを特定できるようにしておく技術です。

以下は、SPFレコードが設定されているイメージです。受信メールサーバーでは、鈴木さんのメールドメインである「aaa.com」のSPFレコードを参照して、aaa.comのメールサーバーのIPアドレスを確認し、送信メールサーバーがそのIPアドレスでなければメールをブロックしたり、迷惑メールフォルダに格納することができます。

手順1:自社ドメインのメール送信元をすべて洗い出そう

SPFレコードには、自社ドメインのアドレスを差出人としてメールを送るすべての送信元を含める必要があります。Google Workspaceだけを登録して、他の正当な送信元を書き漏らすと、そのサービスから送ったメールがSPF認証に失敗し、迷惑メール扱いされるおそれがあります。

SPFレコードの値を決める前に、次のような送信元がないか確認しましょう(Google公式ヘルプが挙げている例をもとにしています)。

送信元の棚卸しチェックリスト
  • Google Workspace(Gmail)
  • Webサイトのサーバー(お問い合わせフォームの自動返信・通知メールなど)
  • オンプレミスのメールサーバー(Microsoft Exchangeなど)
  • レンタルサーバー・ホスティングサービスのメールサーバー
  • 送信ゲートウェイ(メール誤送信防止・アーカイブサービスなど)
  • メール配信・MA・CRMなど、自社ドメインのアドレスで自動送信する外部サービス(メルマガ配信、Salesforce、予約・決済システムなど)

送信元がGoogle Workspaceだけであれば、この記事で紹介する基本の値をそのまま使えます。外部サービスからも送信している場合は、各サービスの公式ヘルプで「SPFに追加する値(include: の値やIPアドレス)」を確認しておきます。判断がつかない場合は、社内のシステム担当者や、各サービスの提供元に確認しましょう。

手順2:現在のSPFレコードを確認しよう

次に、あなたのドメインにすでにSPFレコードが登録されていないか確認しましょう。

今回確認方法は、一般公開されているこちらのツールを使います。

https://mxtoolbox.com/spf.aspx

「Domain Name」の欄に、Google Workspaceで使用するドメインを入力し「SPF Record Lookup」を押します。

SPFレコードが設定されていると、下記の赤丸の部分に「v=spf1・・」で始まる文字が出てきます。設定されていない場合は「No SPF Record found」と表示されます。

この結果によって対応内容が変わるので、下記の表にまとめてみました。

SPFレコードの内容対応内容
「v=spf1 include:_spf.google.com ~all」である送信元がGoogle Workspaceだけなら、Google Workspace向けのSPFレコードは設定済みです。手順1で他の送信元が見つかった場合は、このレコードにその送信元を追加します。
上記以外の「v=spf1・・」で始まる文字が表示されているGoogle Workspace以外の送信元が登録されています。新しいSPFレコードを追加せず、今あるレコードを編集してGoogle Workspace(include:_spf.google.com)を追加します。すでに使っていない送信元の値は、使用していないことを確認してから削除します。
「v=spf1」で始まる行が2つ以上あるSPFレコードが重複しています。1つのレコードに統合し、残りは削除します(下記「1ドメインにSPFレコードは1つだけ」参照)。
「No SPF Record found」が表示されているSPFレコードが設定されていません。手順1で洗い出した送信元をもとに、SPFレコードを新しく1つ登録します。

手順3:登録するSPFレコードの値を決めよう

Google Workspaceだけで送信する場合

送信元がGoogle Workspaceだけの場合は、Google公式ヘルプのとおり次の値を登録します。

v=spf1 include:_spf.google.com ~all

それぞれの意味は次のとおりです。

要素意味
v=spf1SPFレコードであることを示す宣言。必ず先頭に書きます
include:_spf.google.comGoogle Workspace(Gmail)の送信サーバーを許可する
~all上記以外から送られたメールは「疑わしい(SoftFail)」として扱うよう受信側に伝える。通常は受信されますが、疑わしいメールとして扱われます

末尾を -all にすると、許可していない送信元からのメールは受信側で拒否される場合があります。送信元の書き漏らしがあると正当なメールまで届かなくなるおそれがあるため、Google公式ヘルプでは ~all の使用が推奨されています。

外部サービスからも送信する場合(既存レコードへの統合)

1つのドメインに登録できるSPFレコードは1つだけです。Google Workspace用と外部サービス用でSPFレコードを2つ登録すると、受信側がSPFを正しく評価できず、認証エラー(PermError)になります。複数の送信元がある場合は、v=spf1 から始まる1つのレコードの中に、すべての送信元を並べて書きます。

例えば、既存のSPFレコードが次のようになっていたとします(spf.example-mail.com は外部の配信サービスが指定する値の例、203.0.113.10 はWebサーバーのIPアドレスの例です)。

v=spf1 include:spf.example-mail.com ip4:203.0.113.10 ~all

この場合は、新しくレコードを追加するのではなく、既存レコードの ~all の前に include:_spf.google.com を追加して、次の1行に書き換えます。

v=spf1 include:_spf.google.com include:spf.example-mail.com ip4:203.0.113.10 ~all
1ドメインにSPFレコードは1つだけ・参照は10回まで
  • v=spf1 で始まるTXTレコードは、1つのドメイン(ホスト名)に1つだけにします
  • include: などで他のドメインを参照できる回数(DNSルックアップ)は、合計で10回までです。外部サービスを追加するほど回数が増え、上限を超えるとSPF認証が失敗します
  • 送信サービスの追加・解約があったときは、その都度SPFレコードも更新します

送信元が多い、参照回数の上限に近いなど構成が複雑な場合は、自己判断で書き換えず、社内のシステム担当者や各送信サービスの公式ヘルプを確認してから設定しましょう。

手順4:DNSにSPFレコードを登録しよう

それではSPFレコードを設定していきましょう。SPFレコードはDNS設定を修正しますので、ドメイン管理会社のDNS情報管理画面から設定します。今回はバリュードメインでの例でご説明いたします。

バリュードメインにログインしたあと、管理画面のトップページで「管理ドメイン」のリンクを選択します。

管理ドメインの一覧から、対象のドメインの「DNS/URL」を選択します。

SPFレコードは「TXTレコード」と呼ばれる種類で登録します。すでにSPFレコードがある場合は新しい行を追加せず、既存の行を手順3で決めた値に書き換えてください。

種類TXT
ホスト「@」や「入力なし」。 ※サブドメイン付きのメールアドレスで運用する場合は「サブドメイン名」を指定します。 例)xxxxx@aaa.bbb.com のようなメールアドレスであれば「aaa」を指定。
値手順3で決めた値(Google Workspaceだけの場合は v=spf1 include:_spf.google.com ~all)

バリュードメインの場合は下記のような入力になります。入力後保存ボタンを押してください。

手順5:SPF認証に合格しているか確認しよう(spf=pass の確認)

DNSの変更が反映され、SPF認証が機能し始めるまでには最大48時間ほどかかる場合があります。少し時間をおいてから、次の2段階で確認しましょう。

1. DNSにSPFレコードが公開されているか確認する

手順2と同じツールでドメインを検索し、登録した値の「v=spf1・・」が1つだけ表示されることを確認します。ただし、これはDNSにレコードが公開されたことの確認であり、実際のメールがSPF認証に合格しているかまではわかりません。

2. テストメールのヘッダーで spf=pass を確認する

SPFを設定したドメインのアドレスから、社外のGmailアドレスなど、自分以外の宛先にテストメールを送信し、受信側でメールのヘッダーを確認します。

Gmailで受信した場合は、メールを開いて「︙」(その他)メニューから「メッセージのソースを表示」を選びます。画面上部の一覧で「SPF」が「PASS」になっているか、またはヘッダー内の「Authentication-Results」の行に spf=pass と表示されていれば、SPFの設定は完了です。

spf=softfail や spf=fail と表示される場合は送信元の書き漏らし、spf=permerror と表示される場合はSPFレコードの重複や書式の誤り、参照回数(10回)の超過などが考えられます。手順1〜3を見直しましょう。

外部サービス(メール配信サービスやWebフォームなど)からも送信している場合は、同じようにそのサービスから送ったテストメールでも spf=pass になっていることを確認しておくと安心です。

SPF・DKIM・DMARCの関係

SPFは、送信ドメインを認証する仕組みのひとつです。Google公式は、SPFに加えてDKIMとDMARCも設定することを推奨しています。3つの役割は次のとおりです。

仕組み役割
SPFそのドメインのメールを送ってよい送信サーバー(送信元)を、DNSで受信側に伝える
DKIM送信するメールに電子署名を付け、送信途中で改ざんされていないこと・正当な送信元から送られたことを受信側が検証できるようにする
DMARCSPFまたはDKIMの結果と差出人(From)ドメインの整合性をもとに、認証に失敗したメールをどう扱うか(監視のみ・隔離・拒否)と、レポートの送付先を受信側に伝える

Googleのメール送信者のガイドラインでは、個人用Gmailアカウント宛てにメールを送るすべての送信者にSPFまたはDKIMの設定が求められ、個人用Gmailアカウント宛てに1日5,000通を超えるメールを送る送信者(一括送信者)には、SPF・DKIM・DMARCの3つすべての設定が必須とされています。

DKIMの設定手順はDKIM認証を設定してGoogle Workspaceのメール到達率を上げようで解説しています。DMARCは、SPFとDKIMを設定してから48時間以上の間隔を空けて、監視のみの設定から段階的に導入します(Google公式ヘルプの推奨)。具体的な設定手順はGoogle公式ヘルプのDMARC を設定するで確認できます。

SPFを設定してもメールが届かない場合

SPFは送信元を証明する仕組みのひとつであり、SPFを設定しただけで必ずメールが届くようになる・到達率が上がるとは限りません。メールが届かない、迷惑メールに入るといった問題は、次のような要因も関係します。

  • DKIM・DMARCが未設定、または認証に失敗している
  • 受信側から拒否(バウンス)されており、エラーメールに理由が書かれている
  • 送信ドメインやIPアドレスの評価(送信者の評判)が低い、大量送信で迷惑メールと判定されている
  • 宛先アドレスの誤りや、受信側のフィルタ設定

まずは手順5の方法でヘッダーのSPF・DKIM・DMARCの結果を確認し、エラーメールが返ってきている場合はその内容から原因を切り分けましょう。

まとめ – SPFは送信元を洗い出してから1レコードで設定しよう

SPFレコードは、自社ドメインのメールを送ってよい送信元を受信側に伝えるための設定です。次のポイントを押さえて設定しましょう。

  • 設定前に、Google Workspace以外の送信元(Webフォーム、配信サービスなど)もすべて洗い出す
  • SPFレコードは1ドメインに1つだけ。既存のレコードがある場合は、そこへ include:_spf.google.com などを統合する
  • 反映には最大48時間ほどかかる場合がある。テストメールのヘッダーで spf=pass を確認して完了とする
  • SPFだけでなく、DKIMとDMARCもあわせて設定する

なお、SPFレコードに関するGoogle公式のドキュメントはこちらです。詳細はこちらも合わせてご覧ください。

■SPF を設定する – Google Workspace 管理者 ヘルプ
https://knowledge.workspace.google.com/admin/security/set-up-spf?hl=ja

■SPF レコードについて – Google Workspace 管理者 ヘルプ
https://knowledge.workspace.google.com/admin/security/about-spf-records?hl=ja

また、当サイトのこちらの記事も合わせて読むと、より理解が深まると思いますのでぜひチェックしてみてください。

Google Workspace 担当者のためのDNS講座

12ヶ月15%OFFクーポンを受け取る