【初心者向け】SPF / DKIM / DMARC のざっくり解説

  • URLをコピーしました!

この記事では「WebサイトにあるPHP製メールフォームから送信したメールが、迷惑メールにならずに届くようにしたい!」という視点で、SPF / DKIM / DMARC についてゆるめに解説します。

目次

SPF / DKIM / DMARC とはざっくりどんなもの?

メールを受け取るサーバーが、受け取ったメールについて、以下の検証をするための仕組みのことです。

  • 「送信しているサーバーはホンモノ?(なりすましではない)」
  • 「送信されたメールは、書きかえられていない?(改竄されていない)」

検証ができないメールや検証に合格しないメールは、迷惑メールになる確率が高くなります。

そのため「迷惑メールにならずに届くようにしたい!」と思ったら、まずは SPF / DKIM / DMARCの設定をきちんとすることになります。

登場人物

Webサイト「example.com」にPHP製メールフォームが設置してあり、そこからメールを送信するときに登場する、登場人物を紹介します。

ウェブサーバー(送信側)

example.comのPHP製メールフォームが設置してあるサーバー

ネームサーバー(送信側)

example.comのDNS設定がされているサーバー

メールサーバー(受信側)

送信されたメールを受け取る側のメールサーバー

前提知識

メールには、普段目にしているメールのタイトルや本文など以外にも「メールヘッダー」という情報がくっついています。
SPF / DKIM / DMARC はその「メールヘッダー」に書いてあるいくつかの情報を使って、メールを検証します。

参考:メールヘッダからわかること、確認・解析方法を紹介

※メールヘッダーには、検証結果も書かれています。

SPF

SPFは、「送信しているサーバーはホンモノ?(なりすましではない)」の確認をする仕組みです。

メールヘッダーの Return-Path のドメインのネームサーバーに、メールを送信したサーバーのIPアドレスが書いてあるかを確認します。

  1. メール受信
  2. メールヘッダーのReturn-Pathのドメインを確認
  3. 送信者のIPアドレスがReturn-Pathのドメインのネームサーバーに書いてあるか確認

→ 書いてあれば検証合格(PASS)

※補足:Return-Pathのメールアドレスは必ずしもFromのメールアドレスと同じとは限りません。FromのメールアドレスとReturn-Pathのメールアドレスが異なるときは、Return-Pathの方のドメインのネームサーバーを確認しに行きます。(参考:【備忘録】さくらのレンタルサーバーに置いたWordPressでSPFがnoneになるのはReturn-Pathの設定のせい?

設定のやりかた(ざっくり)

Return-PathのメールアドレスのドメインのネームサーバーのTXTレコードに v=spf1 ではじまるSPFレコードを記載します。

たとえば、XServerで設定すると以下のようなものになります。

v=spf1 +a:sv****.xserver.jp +a:[ドメイン名] +mx include:spf.sender.xserver.jp ~all

設定の確認のやりかた

無料SPFレコードチェッカー

DKIM

DKIMは、「送信されたメールは、書きかえられていない?(改竄されていない)」の確認をする仕組みです。

メール送信側のサーバーがメールに鍵付きの署名を付けて送り、メールサーバー側は署名時のメール内容と受け取ったメール内容に差がないか(=改竄されていないか)を確認します。

  1. メールを受信
  2. メールヘッダーのDKIM署名を確認
  3. DKIM署名に書かれた場所にある鍵を使って、署名を解読する
  4. 署名時のメールの内容と、現在のメールの内容に差がないか確認

→ 署名が解読できて、署名とメールの内容に差が無ければ合格(PASS)

設定のやりかた(割愛)

DKIMの署名は「公開鍵」と「秘密鍵」のペアを作って設定する必要があるのですが、各ウェブサーバーの管理画面からぽちっとボタンを押す以外の方法を説明できないので割愛します。

設定の確認のやりかた

無料DKIMレコードチェッカー

DMARC

DMARCは、見た目の送信者(From)とSPFやDKIMの検証に使ったドメインが一致するかを、確認する仕組みです。

検証だけではなく、DMARCが不合格(FAIL)になったときメールを捨てるかそのまま受信するか、どちらにするかの指定(ポリシー)を指定することができます。

  1. SPFとDKIMの検証結果の確認
  2. SPFかDKIMのPASSしてる方のドメインとFromのドメインが一致しているかどうかの確認
  3. 指定(ポリシー)にそってメールを処理

DMARCがPASSするかどうかの例

SPFDKIMFromと整合DMARC結果
PASSFAIL不整合(Return-PathがFromと別ドメイン)FAIL
FAILPASS整合(DKIM署名がFromと同ドメイン)PASS
PASSFAIL整合(Return-PathがFromと同ドメイン)PASS

※SPFとDKIM両方がPASSしている場合、どちらかのドメインとFromが整合していればOK
※「同ドメイン」の部分は、サブドメインでも合格する

設定のやりかた(ざっくり)

_dmarc.example.com のTXTレコードに、v=DMARC1 ではじまるDMARCレコードを設定します。

たとえば、以下のような感じです。

v=DMARC1; p=none;

メモ:Google WorkSpaceのヘルプ:DMARC を設定する によると、SPF や DKIM を設定してから DMARC を設定するまでに、48 時間の間隔をあける必要があるようです。

設定の確認のやりかた

無料DMARCチェッカー

※test.example.comから送信するときは、example.comの側のDMARCレコードで検証させる場合が多いようです。

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

コメントは日本語で入力してください。(スパム対策)

CAPTCHA

目次