メールが届かないのはSPF・DKIM・DMARCが原因かも?

朝起きるのがつらいYu-ichiですneko.gif

寒くなってきたので、布団から出るのに1日の半分以上のエネルギーを使います。
人間にも冬眠が必要だと思います!

さて今回は、メールのお話です。
お客様に送ったメールが迷惑メールに入ってしまう、届いていないと言われることありませんか?
その原因の多くは、送信ドメイン認証(SPF、DKIM、DMARC)を正しく設定していないことです。
特に最近はGmailやYahooが認証されていないメールを非常に厳しく扱うため、企業のメール運用では設定がほぼ必須になってきています。

そこで、SPF・DKIM・DMARCの仕組みや設定方法についてまとめてみます。
今回は、3つの役割の基礎と、SPFについて説明します。


■ SPF、DKIM、DMARCの役割について

  • SPF:どのサーバーが自分のドメインからメールを送ってよいかを示す仕組み
  • DKIM:メールに電子署名を付けて改ざんされていないことを証明する仕組み
  • DMARC:SPFとDKIMの結果を見て、受信側にメールをどう扱うか指示する仕組み

3つを組み合わせることで、正しく届くメールの割合が大きく上がります。


■ なぜ今、設定が必須なのか

  • なりすましメールが増えているため、認証がないメールは疑われやすい
  • GmailやYahooでは、認証がないメールは迷惑メールに入ったり拒否される可能性が高い
  • 問い合わせや注文メールが届かないことは、直接ビジネスの損失につながる

そのため、どのレンタルサーバーも3つの認証を行うのが当たり前になっています。
次でその3つのうち「SPF」について簡単に解説します。


■ 今回はSPFを解説

● SPFとは?

SPFはSender Policy Frameworkの略で、ドメインのDNSに「このサーバーから送ってよい」というリストを登録する仕組みです。

例えると「この住所(メールサーバー)から送られたメールなら正規のものですよ」という証明書のようなものです。
リストに載っていないサーバーから送ると、なりすましと判定される可能性があります。


● SPFの設定方法

DNSにTXTレコードを1つ追加します。

v=spf1 +a +mx include:example.ne.jp -all

各部分の意味:

  • a:Webサーバーからの送信を許可
  • mx:メールサーバーからの送信を許可
  • include:外部サービスの送信サーバーを許可
  • -all:許可していないサーバーは拒否


恐らく多くのサーバーは「-all」より「~all」が使われているケースが多いと思います。
「~all」はsoftfailなので、「-all」のように拒否はせず不審なメールとして受信はします。

よくある失敗例:

  • includeを入れすぎてルックアップ回数の上限の10回を超える
  • 最後が「~all」で認証が甘いまま
  • CMSやECサイトなど、外部システムの送信サーバーを追加し忘れる


特にincludeを入れすぎるケースは多いです。
Google Workspaceでメールを使う際には「include:_spf.google.com」を追加するのですが、
このincludeで呼び出した先でもincludeがあるため、1つ追加しただけで3回くらいカウントされます。

上限を超えてしまった場合の対応策として、includeで呼び出しているIPアドレスを直接書くフラット化や、サブドメインを使う方法などあります。
詳しいやり方を丁寧に解説しているサイトがたくさんあるので「SPFフラット化」などで調べてみてください!


次回は「DKIM」について解説したいと思います。
(忘れてなければ・・・)

トラックバックURL