送信ドメイン認証(SPF・DKIM・DMARC)とは?設定手順と確認方法

「送ったはずのメールが届いていない」「重要な返信が相手の迷惑メールフォルダに入っていた」
こうしたメールトラブルは、WordPressのお問い合わせフォームや独自ドメインのメールを使っているWebサイト運営者であれば、誰もが直面しうる問題です。
原因の多くは、メールサーバーの不具合ではなく、送信ドメイン認証(SPF・DKIM・DMARC)の設定不備にあります。
2024年2月にGoogleとYahoo!が送信者ガイドラインを改定して以降、認証設定が不十分なドメインからのメールは迷惑メールと判定されるリスクが高まっています。
大企業だけの問題ではなく、個人事業主や中小企業が運営するWebサイトも例外ではありません。
この記事では、送信ドメイン認証(SPF・DKIM・DMARC)についてわかりやすく解説します。
送信ドメイン認証とは?
なりすましメールが生まれる仕組み
メールの仕組みは非常にシンプルで、送信者が「From」欄に入力したアドレスがそのまま相手に届きます。しかし、この「From」欄は誰でも自由に書き換えることができます。
たとえば悪意のある第三者が [email protected] という送信元を偽って迷惑メールを大量送信したとしても、メール本体の仕組みだけでは受信者はそれが本物かどうかを見分けることができません。これがなりすましメールが生まれる根本的な原因です。
フィッシング詐欺や不正送金を狙ったビジネスメール詐欺(BEC)の多くは、この仕組みを悪用して実在する企業や個人を装います。
メールに「送信元の証明」を加える仕組み
こうしたなりすましを防ぐために生まれたのが送信ドメイン認証です。
送信ドメイン認証は、メールの「送信元ドメイン」が正規のものかどうかを受信側のメールサーバーが自動で検証する仕組みです。DNS(ドメインネームシステム)に認証情報を登録しておくことで、受信サーバーは「このメールは本当にそのドメインのサーバーから送られたものか」を確認できるようになります。
現在、標準的に使われている送信ドメイン認証の技術は以下の3つです。
| 技術 | 役割 |
|---|---|
| SPF | 送信元IPアドレスが正規かどうかを確認する |
| DKIM | 電子署名でメールが改ざんされていないかを確認する |
| DMARC | SPF/DKIM失敗時にどう処理するかポリシーを定める |
この3つを組み合わせることで、なりすましメールを効果的に防ぐことができます。
送信ドメイン認証ではありませんが、S/MIME方式というものがあります。メールそのもの(中身)に鍵をかけてメールの送信者個人または組織を認証するものです。主に企業や公的機関、銀行などがセキュリティ対策(なりすましやフィッシング詐欺の防止)のために導入しています。
メールに添付されている smime.p7s というファイルがそれで、そのメールが「電子署名」によって保護されていることを示す証明書データです。メールソフト上で「リボン」や「鍵」のマークが表示されます。
| 方式 | SPF・DKIM・DMARC | S/MIME |
|---|---|---|
| 認証の対象 | 送信元サーバー・ドメイン 「正しいルートから送られたか」を認証 | メールの送信者個人(または組織) 「Aさんが書いたメールそのもの」を認証 |
| 仕組み | 受信側のサーバー同士が、DNSレコード(インターネット上の台帳)を照合して確認する。 | 送信者がメールごとにデジタル署名を添付する(または暗号化する)。 |
| 受信者側の見え方 | 通常、ユーザーの目には見えない(裏側で自動判定され、迷惑メールフォルダ振り分けなどに使われる)。 | メールソフト上で「リボン」や「鍵」のマークが表示される。あるいは添付ファイル smime.p7sが見える。 |
| 改ざん検知 | DKIMのみ可能(サーバー間で検証)。SPFはルートのみ。 | 可能。メールの本文や添付ファイルが1文字でも書き換えられたら警告が出る。 |
本記事ではSPF・DKIM・DMARCについて詳しく解説します。
メールが届かない・迷惑メール判定される原因
フィルターの厳格化と正規メールへの影響
2024年2月、GmailとYahoo!メールは送信者ガイドラインを大幅に改定しました。1日5,000件以上のメールを送る大量送信者には、SPF・DKIM・DMARCの設定が必須要件として課されています。
しかし注目すべきは、この影響が大量送信者だけにとどまらない点です。フィルタリングのアルゴリズムは日々進化しており、設定が不十分なドメインからのメールは、送信数に関わらず迷惑メールと判定されるリスクが高まっています。
WordPressのお問い合わせフォームからの自動返信メール、注文確認メール、請求書の送付など、ビジネスに欠かせないメールが相手に届かなくなるケースが増えているのが現状です。
迷惑メールと判定される原因は送信ドメイン認証の不備だけではありません。基本的な原因や対処法は以下の記事でも解説しています。
共用サーバー利用者が直面する「巻き添えリスク」
レンタルサーバーの多くは共用サーバー形式を採用しており、1つのIPアドレスを複数のユーザーが共有しています。
ここに大きなリスクが潜んでいます。同じサーバーを使っている別のユーザーがスパムメールを大量送信した場合、そのIPアドレス全体が迷惑メール送信元としてブラックリストに登録されることがあります。すると、まったく関係のない自分のドメインから送ったメールまで、迷惑メールと判定されてしまうのです。
これが「巻き添えリスク」と呼ばれる問題です。
送信ドメイン認証を正しく設定することで、たとえIPアドレスが汚染されていても、自分のドメインから送信した正規のメールであることを受信サーバーに証明できるようになります。
送信ドメイン認証を設定することで変わること
送信ドメイン認証を設定することで、以下の効果が期待できます。
- メールの到達率が向上する:正規の送信元として認証されるため、迷惑メールフォルダに振り分けられにくくなります。
- なりすましを防止できる:第三者が自分のドメインを騙ってメールを送れなくなります。
- ブランドの信頼性が高まる:受信者に「このメールは本物だ」という安心感を与えます。
- DMARCレポートで不正利用を検知できる:自分のドメインが悪用されていないかをモニタリングできます。
送信ドメイン認証(SPF・DKIM・DMARC)それぞれの仕組み
SPF - 送信元サーバーを証明する
SPF(Sender Policy Framework) は、あるドメインのメールを送信することが許可されているサーバー(IPアドレス)のリストをDNSに登録する仕組みです。
メールを受信したサーバーは、送信元のIPアドレスとDNSに登録されたリストを照合します。リストに含まれていれば「PASS」、含まれていなければ「FAIL」となります。
SPFレコードの例:
v=spf1 include:_spf.google.com ~all
SPFレコードの各パラメータの意味は以下のとおりです。
| パラメータ | 説明 |
|---|---|
| v=spf1 | SPFバージョン1を使用(必須) |
| include:_spf.google.com | Googleのメールサーバーからの送信を許可 |
| ~all | リスト外のサーバーからの送信はソフトフェイル(受信するが疑わしいとマーク) |
| -all | リスト外のサーバーからの送信はハードフェイル(拒否) |
SPFの基本的な仕組みは以下の記事でも詳しく解説しています。
DKIM - メールの改ざんを検知する
DKIM(DomainKeys Identified Mail) は、電子署名を使ってメールの正当性を証明する仕組みです。
送信サーバーはメールに秘密鍵で電子署名を付けて送信します。受信サーバーはDNSに公開されている公開鍵を使ってその署名を検証します。署名が一致すれば「メールが改ざんされていない」ことが証明されます。
DKIMの仕組みのポイントは以下の3点です。
- 送信時:メールの本文・ヘッダー情報をハッシュ化し、秘密鍵で署名
- DNSに公開鍵を登録(TXTレコード)
- 受信時:公開鍵で署名を検証し、改ざんの有無を確認
DKIMの強み: メールが転送された場合でも署名は維持されるため、転送時のSPF失敗をカバーできます。
DKIMの基本的な仕組みは以下の記事でも詳しく解説しています。
DMARC - 認証失敗時の処理を決める
DMARC(Domain-based Message Authentication, Reporting, and Conformance) は、SPFまたはDKIMの認証が失敗した場合に、受信サーバーがどう処理すべきかを指示する仕組みです。
また、「ヘッダーFrom」のドメインとSPF/DKIMが認証したドメインが一致しているか(アライメント)を確認することで、なりすましを防ぎます。
DMARCレコードの例:
v=DMARC1; p=quarantine; rua=mailto:[email protected]; pct=100
DMARCレコードの主なパラメータは以下のとおりです。
| パラメータ | 説明 |
|---|---|
| v=DMARC1 | DMARCバージョン(必須) |
| p=none | 認証失敗でも何もしない(モニタリング用) |
| p=quarantine | 認証失敗メールを迷惑メールフォルダへ |
| p=reject | 認証失敗メールを完全に拒否 |
| rua=mailto:... | 集計レポートの送付先 |
| pct=100 | ポリシー適用割合(%) |
DMARCの基本的な仕組みは以下の記事でも詳しく解説しています。
なぜ3つセットでなければいけないのか
SPF・DKIM・DMARCはそれぞれ異なる役割を持ち、単独では完全な保護ができません。
SPFだけでは:
- ヘッダーFromのなりすましを防げない
- メール転送時にSPFが失敗してしまう
DKIMだけでは:
- 正規サーバーから送られた場合、なりすましメールでも署名が付いてしまう可能性がある
- 認証失敗時の処理を指示できない
DMARCだけでは:
- SPFとDKIMの認証結果がなければ機能しない
3つを組み合わせることで:
- SPF →「どのサーバーから送っていいか」を定義
- DKIM →「メールが本物で改ざんされていないか」を証明
- DMARC →「認証失敗時にどうするか」を指示し、なりすましの最終判定を行う
この三層構造により、なりすましメールに対する堅牢な防御が実現します。
SPF・DKIM・DMARCの比較一覧表
| 項目 | SPF | DKIM | DMARC |
|---|---|---|---|
| 検証対象 | 送信IPアドレス | メール署名 | アライメント+ポリシー |
| DNSレコード種別 | TXTレコード | TXTレコード | TXTレコード |
| 転送時の耐性 | 弱い(失敗しやすい) | 強い(署名が維持される) | SPF/DKIMの結果に依存 |
| なりすまし防止 | 部分的 | 部分的 | 高い(アライメントで検証) |
| レポート機能 | なし | なし | あり(集計・フォレンジック) |
| 単独での完全性 | ✕ | ✕ | ✕ |
| 3つ組み合わせ | ◎ | ◎ | ◎ |
送信ドメイン認証の設定手順
事前準備 - 現状の設定を確認する
設定を始める前に、現状を把握しておきましょう。
設定前に確認しておきたい事項は、以下の3点です。
- 利用中のDNS管理ツール:ドメインのDNSをどこで管理しているか(レンタルサーバーのコントロールパネル、ドメイン登録会社、Cloudflareなど)
今回はOne レンタルサーバーの管理画面を使って設定します。
- メールの送信元:WordPressから送信、独自メールサーバー、Googleワークスペース、外部メール配信サービスなど、どこからメールを送っているか
- 既存のSPF・DKIMの設定有無:MXToolbox(後述)で現状を確認できます
複数のサービスからメールを送っている場合(例:メールサーバー+SendGrid+WordPress)は、各サービスが指定するSPFレコードをinclude構文ですべて含める必要があります。
ステップ1:SPFレコードを設定する
SPFレコードはDNSにTXTレコードとして追加します。
1.One レンタルサーバーにログインし、ホーム画面の「サーバー」>「One レンタルサーバー」>「サーバー管理」をクリックします。

2. 設定するサーバーアカウントの「サーバーパネル」をクリックします。

3.「サーバー全体設定」>「ドメイン全体管理」をクリックし、設定したいドメイン名をクリックします。(例ではドメイン名:myblog.sco.jpを設定)

4.画面下のアクションリンクから「メール管理」>「SPF管理」をクリックします。

5.操作欄の「変更」ボタンをクリックします。

※ドメイン名がValue Domain 提供のネームサーバーでない場合、「変更」ボタンは「操作できません」と表示され設定はできません。たとえばCloudflare等の外部のネームサーバーを使用している場合です。この場合は外部のネームサーバー管理下でSPF設定することになります。
※ドメイン名:myblog.sco.jpはAレコードでDNS登録されている必要があります。CNAMEレコードで登録されている場合は、「操作できません」と表示され、設定はできません。
6.「SPF設定の利用有無」をONにして「変更」ボタンをクリックします。

SPFレコードの設定値の例は以下のとおりです。
| 項目 | 値 |
| タイプ | TXT |
| ホスト名(名前) | @(ルートドメイン) |
| 値(コンテンツ) | v=spf1 include:利用サービスのSPF ~all |
| TTL | 3600(1時間) |
代表的なサービスのSPFインクルード値は以下のとおりです。
| サービス | includeの値 |
| Googleワークスペース | include:_spf.google.com |
| さくらのレンタルサーバー | a:www****.sakura.ne.jp(契約ごとに異なるホスト名を指定、固定のincludeドメインなし) |
| SendGrid | include:sendgrid.net |
| Amazon SES | include:amazonses.com |
注意点: SPFレコードは、DNSに登録される「レコードタイプ」としては TXTレコード の一種であり、その内容(値)としてSPFの設定情報が記述されます。1ドメイン名につき1つだけ設定できます。複数のサービスを使う場合は、1行にまとめる必要があります。
v=spf1 a mx include:_spf.rs00012.vdone.jp include:_spf.vdone.jp include:_spf.google.com ~all
SPF設定でGoogleワークスペースを使っている場合はGmail許可の追加を押すと自動的にinclude:_spf.google.comを追加してくれます。その他は手動で追加入力してください。

また、SPFのincludeチェーンは最大10回までという制限があります。これを超えるとSPFが機能しなくなるため注意が必要です。
7.SPF管理画面で設定内容がONになっていることを確認します。

8.DNS登録結果の確認をします。

TXTレコードで名前myblogとしてv=spf1..が追加されています。
One レンタルサーバーなら、DNSの知識がなくてもトグルをONにするだけで設定が完了します。TXTレコードを自分で直接編集する必要がありません。
ステップ2:DKIMを設定する
1.画面下のアクションリンクから「メール管理」>「DKIM設定」をクリックします。

2.操作欄の「DKIM設定表示」ボタンをクリックします。

3.DKIM設定の内容が表示されます。

DKIMの設定は利用しているメールサービスによって方法が異なります。
多くのレンタルサーバーやメールサービスでは、コントロールパネルからDKIMを有効化するだけで自動的に設定されますが、One レンタルサーバーでは自動で追加されませんので、ご利用のドメインのDNS情報に、表示されたDKIM設定を追加してください。DNS追加方法は「DNS設定」をご覧ください。

※DKIMキーで最後に;(セミコロン)がありますが、仕様上無い方がベターなので削除して登録します。あってもほぼ問題ありません。
4.DKIM管理画面で設定状況が正常となっていることを確認します。

DKIMレコードの設定例は以下のとおりです。
| 項目 | 値 |
| タイプ | TXT |
| ホスト名 | default._domainkey(セレクタ名は任意) |
| 値 | v=DKIM1; k=rsa; p=MIIBIjANBg...(公開鍵) |
ステップ3:DMARCレコードを追加する
※本ステップは外部DNSで管理している場合の手順です。One レンタルサーバー利用者は、次のステップ4の画面操作だけで設定できます。
SPFとDKIMの設定が完了したら、DMARCレコードを追加します。最初はp=none(監視モード)から始めるのが安全です。
DMARCレコードの追加項目は以下のとおりです。
| 項目 | 値 |
| タイプ | TXT |
| ホスト名 | _dmarc |
| 値 | v=DMARC1; p=none; rua=mailto:あなたのメールアドレス |
| TTL | 3600 |
rua=mailtoに指定したメールアドレスに、DMARCの集計レポートが届くようになります。このレポートを確認することで、自分のドメインがどのように使われているかを把握できます。
ステップ4:DMARCポリシーを段階的に強化する
1.画面下のアクションリンクから「メール管理」>「DMARC設定」をクリックします。

2.操作欄の「編集」ボタンをクリックします。
3.DMARC設定 / レポート通知設定を選択し「設定」をクリックします

DMARCのポリシーは、段階的に強化していくことが推奨されています。
最初は「何もしない」、レポート「ON」、通知先のメールアドレスを設定して、画面下部の「設定」をクリックします。DNSには自動で登録されます。

※通知先のメールアドレスはXXX@ドメイン名を指定します。対象外のドメインのメールアドレスを指定すると警告メッセージが表示されて登録できません。
対象ドメインはサブドメインですのでメールアドレスもサブドメインのメールアドレスとなります。
4.DMARC管理画面でポリシー設定が「何もしない」、レポート通知設定がONになっていることを確認します。

5.DNS登録結果の確認をします。

TXTレコードで名前_dmarc.myblogとしてv=DMARC1;が追加されています。
One レンタルサーバーなら、DMARCも「編集」ボタンからポリシーを選んで「設定」をクリックするだけで、DNS登録まで完了します。TXTレコードを直接編集する手間はありません。
DMARCのポリシーをp=quarantineやp=rejectまで引き上げたら、次のステップとしてメールにブランドロゴを表示する「BIMI」の導入も検討できます。BIMIはSPF・DKIM・DMARCの認証を土台とする仕組みで、設定方法は以下の記事で解説しています。
送信ドメイン認証設定後の確認方法
設定後は、正しく機能しているかを必ず確認しましょう。
MXToolboxで認証状態を確認する
MXToolbox は、SPF・DKIM・DMARCの設定を無料で確認できる定番ツールです。
SPFの設定は、以下の手順で確認できます。
- MXToolbox(https://mxtoolbox.com/spf.aspx)にアクセス
- 検索欄にドメイン名を入力(例:example.com)
- 「SPF Record Lookup」をクリック
- 「v=spf1」で始まるレコードが表示されれば設定済み
確認した結果は以下のとおりです。

全てのチェックステータスがグリーンで問題ありませんでした。もし不整合の項目があれば赤×で表示されます。
DKIMの設定は、以下の手順で確認できます。
- MXToolbox(https://mxtoolbox.com/dkim.aspx)にアクセス
- セレクタ名とドメイン名を入力
default._domainkey.myblogの場合、myblog.sco.jp: defaultと入力します。myblog.sco.jpは著者が設定しているホスト名ですので各自置き換えてください。 - 「DKIM Record Lookup」をクリック
- 公開鍵情報が表示されれば設定済み
確認した結果は以下のとおりです。

全てのチェックステータスがグリーンで問題ありませんでした。もし不整合の項目があれば赤×で表示されます。
DMARCの設定は、以下の手順で確認できます。
- MXToolbox(https://mxtoolbox.com/dmarc.aspx)にアクセス
- ドメイン名を入力して「DMARC Lookup」をクリック
- v=DMARC1で始まるレコードが表示されれば設定済み
確認した結果は以下のとおりです。

正しく認識されました。赤×「DMARC Policy Not Enabled」となっているのは、フェーズ1の設定でp=none(監視モード)になっているからで問題ありません。
Gmailでメールを受信しメールの原文表示で問題ないか確認する
実際に届いたメールがSPF・DKIMを通過しているかどうかは、メールヘッダーを確認することでわかります。Gmailではメールの原文を表示することで容易に確認ができます。
実際にmyblog.sco.jpからメールを送信してみます。対象ドメインからメールを送信する手段はいろいろありますが、WordPressでホームページを運用しているユーザーならお問い合わせページも設置されていると思います。そのページからテストで受付メールをGmailのメールアドレスに返信するようにすればよいです。
筆者もWordPressを使っていますが、次の方法で確認しました。管理者のメールアドレスをGmailアドレスに変更してプロフィールを更新します。Gmail宛てにメールアドレス変更リクエストが届くので、メールヘッダーを確認します。
WordPressを利用する場合は、次の点に注意が必要です。
OneレンタルサーバーでWordPressをデフォルトインストールすると、独自ドメインを利用していても、差出人は[email protected]に内部設定されます。このままだと折角myblog.sco.jpでSPFレコードを設定しても[email protected]から来たことになりエラーとなります。
差出人を[email protected]に変更するにはいくつか方法がありますが、WP Mail SMTPプラグインを入れて設定するのが手っ取り早いです。

・プラグインを使ってお問い合わせページを構築しているユーザーは送信元を今回SPF設定したドメインのメールアドレスに設定しておいてください。
メールヘッダーを確認する手順は以下のとおりです。
1. Gmailで確認したいメールを開く

2. 右上の「︙(その他)」→「原文を表示」をクリック

3. 表示された画面の確認

認証結果の見方は以下のとおりです。
| 表示 | 意味 |
| SPF=PASS | SPF認証成功 |
| DKIM=PASS | DKIM認証成功 |
| DMARC=PASS | DMARC認証成功 |
| SPF=FAIL,NONE | SPF認証失敗(設定を見直す) |
| DKIM=FAIL | DKIM認証失敗(公開鍵の設定を確認) |
3つすべてに PASS が表示されていれば、送信ドメイン認証は正しく機能しています。
まとめ:送信ドメイン認証設定チェックリスト
以下のチェックリストを使って、送信ドメイン認証の設定状況を確認しましょう。
設定チェックリスト
事前確認
- [ ] DNS管理ツール(コントロールパネル等)にアクセスできる
- [ ] 利用しているメール送信サービスをすべて把握している
- [ ] MXToolboxで現状の設定を確認した
SPF設定
- [ ] TXTレコードにv=spf1で始まるSPFレコードを追加した
- [ ] 利用しているすべてのメール送信サービスをinclude:で指定した
- [ ] ~allまたは-allで終わらせた
- [ ] SPFレコードが1つだけであることを確認した
- [ ] MXToolboxでSPFが正しく認識されていることを確認した
DKIM設定
- [ ] メールサービスの管理画面でDKIMを有効化した
- [ ] 公開鍵のTXTレコードをDNSに追加した
- [ ] MXToolboxでDKIMレコードが確認できた
DMARC設定
- [ ] _dmarcのTXTレコードを追加した
- [ ] 最初はp=noneでモニタリングから開始した
- [ ] ruaにレポート受信用のメールアドレスを設定した
- [ ] DMARCレポートを確認し、問題がないことを把握した
- [ ] 段階的にp=quarantine→p=rejectへポリシーを強化した
最終確認
- [ ] MXToolboxでSPF・DKIM・DMARCすべてが設定されていることを確認した
- [ ] 実際に送ったメールのヘッダーでspf=pass・dkim=pass・dmarc=passを確認した
送信ドメイン認証の設定は、一度行えばほぼメンテナンス不要です。しかし、新しいメール送信サービスを追加した際には必ずSPFレコードを更新することを忘れないようにしましょう。
メールが確実に届く環境を整えることは、ビジネスの信頼性を守ることに直結します。この記事を参考に、ぜひ今日から設定を進めてみてください。
独自ドメインでのメール運用から送信ドメイン認証の設定まで一つの管理画面でまとめて行いたい場合は、One レンタルサーバーがおすすめです。独自ドメインが永久無料で付いてくるため、月額680円〜で独自ドメインのメールアドレスを無制限に作成できます。
初期費用0円・15日間の無料トライアルもあるので、気になる方はぜひ試してみてください。
※サーバー契約とセットの場合。対象ドメイン等の条件は公式サイトをご確認ください。
ドメイン・サーバー同時契約でドメイン費用永久無料(年間最大3,889円お得)
是非、お得なこの機会にご利用ください。最新のキャンペーンはこちらから
※ユーザーノートの記事は、弊社サービスをご利用のお客様に執筆いただいております。
医療メーカーで新素材研究開発後、電機メーカーで制御器系システム開発を経てIT系マルチエンジニアをしています。またデザイン思考を実践し、アート思考などのいろんな思考方法に興味があります。












目次へ