本ページはプロモーションが含まれています。 サーバー関連

【脱!迷惑メール地獄】さらっと理解する迷惑メール対策 Vol.3 – SPF 設定編

2023年12月4日

脱迷惑メール対策Vol3。SPFの設定、実践編

Vol.2で紹介した、SPFの設定方法について紹介します。

SPFが分からない方は、まずは概要Vol.2をご一読ください。

先づSPFより始めよ、ということで設定方法を確認していきましょう!

記事の目的

  • 基本的なSPFの設定が、自分でできるようになる
  • メールが届かない問題を解決する

関連記事もチェックしよう!

復習: SPFはDNSで設定。記述は一行のみ!

SPFは意外とシンプル!DNSに一行設定するだけ!

詳細な設計が気になる方は、RFC7208をご覧ください。

DKIMなどの対応と異なり、専用のソフトなどは不要です。

SPFは迷惑メール対策としては簡単で、DNSに一行記述するだけで済みます。

まずは、この点を認識しておきましょう。

主要な記述方法は「mx」と「ip4」、「include」で大体OK!具体的な設定方法を確認しよう!

SPFのinclude、mx、ip4はそれぞれどう違う?

迷惑メール対策としては簡単な部類ですが、仕様自体はそこそこ複雑です。

重要なポイントだけ押さえて、使いながら慣れていきましょう。

SPFのTXTレコードは一行で記述しなければならない!「一行でもいい」ではないことに注意!

良く理解していないと、やってしまいがちな典型例です。

原則論としては、SPFは一行で書かなければなりません。

分かりやすいようにと、分割して設定しないようにしましょう。

The SPF record is expressed as a single string of text found in the RDATA of a single DNS TXT resource record; multiple SPF records are not permitted for the same owner name.

↓ドキュメント(rfc7208)より、ざっくり意訳

SPFレコードは一つのTXTレコードから構成されます。

同じDNS所有者に対して、複数のSPFレコードは設定できません。

メールを送信するサーバが自分で管理しているなら「ip4」を、外部サービスなら「include」を設定しよう!

まずは書式のベース部分を確認しましょう。

ざっくり下記のように表すことができます。

{ドメイン名} IN TXT “v=spf1 {具体的な設定} ~all”

例)
example.com. IN TXT “v=spf1 mx include:example2.com ip4:100.100.100.100 ip4:200.200.200.200 ~all”

※「mx」や「include」の前に「+」があっても意味は同じです。

管理画面のDNSから設定するとしたら、下記のような感じになると思います。

名前 ※サブドメインなど タイプ
・メインドメインの表記はサーバによる。恐らく「@」あたり。
・サブドメインはそのまま書いてOK。
TXT v=spf1 mx include:example2.com ip4:100.100.100.100 ip4:200.200.200.200 ~al

大体察せると思いますが、v=spfの先から~allまでの間が個々の設定です。

それぞれの項目については次の項で解説しますが、意訳を載せておきます。

例示したSPFの意訳

以下の内容に当てはまる場合は、正常通過(Pass)させてください。

  • MXレコードのサーバと同一である
  • 「example2.com」のSPFレコードに含まれているサーバである
  • ipv4「100.100.100.100」のアドレスから送られている
  • ipv4「200.200.200.200」のアドレスから送られている

当てはまらない場合は、失敗(softfail)させてください。
※拒否ではないです。

「mx」はMXレコードの利用を指し、送信サーバと送信元が同じ場合に便利!

mxを指定しておくと、名の通りMXレコードにある値を使うことができます。

主に、自サーバからの設定をする場合に便利です。

挙動としては、メールサーバのIPを確認して「ip4」で指定しても同じです。

一々確認しなくて済むので、自サーバからの送信はmxで指定しましょう。

「ip4」はipアドレスを指し、個別の送信元を指定する場合に利用する。

自分で設定するものとしては、一番見る設定ではないでしょうか。

何のひねりもなく、送信元のIPを直接記述する仕組みです。

ipに限ったことではありませんが、同じ指定が続く場合も都度「ip4」と記述します。

「,」やスペース区切りではない点に注意してください。

「include」は、外部サービスを利用する場合に使用する

主に、Googleフォームを使うケースでしょうか。

ある程度規模が大きい場合は、CRMなどからメールを送信する場合もあるかもしれません。

いずれにしても、下記のようなケースでは連携先送信サーバの設定が必要です。

  • 外部サービスを利用する
  • 外部のフォームを埋め込むまたは遷移して使用させる

末尾は「~all」(チルダall)で締めくくる

最後に忘れてはいけないのが、「~all」の部分です。

前の設定に引っかからなかった場合は、緩めの拒否を返す記述になります。

似たような設定に「-all」(ハイフンall)があり、こちらは完全な失敗を指します。

なぜ拒否「-all」にしないの?

実際に、公式の方でも-allの記述が多いです。

セキュリティの面では、未定義のアドレスからは完全拒否のほうが安全でしょう。

一方で、あまり厳しいと設定のミスや追加忘れがあるとすべて拒否される可能性があります。

最終的に100点を目指すのはありですが、最初は緩めの設定から始めるのがおすすめです。

設定が終わったら、ツールでステータスを確認しよう!

SPF設定はツールで確認しよう!

設定が終わったら、ネット上のツールで確認してみましょう。

個人的には、kitterman.comのページがシンプルで分かりやすいと思います。

英語のページですが、ブラウザの翻訳で十分理解できると思います。

反映までのラグについて

DNSの設定反映には、長い場合数日のラグがあります。

設定が変わってないと思ったら、最低でも数時間置くようにしましょう。

特定の日に終わらせる必要がある場合は、事前に「TTL」を設定してください。

主要なステータスは、「通過」・「中立」・「拒否」。有無をいわずに「通過」を目指そう!

文中で登場はしている通り、設定に応じてメールステータスが決定されます。

目指すのは「通過」ですが、そのほかにほどのようなものがあるか。

この機会に、確認しておきましょう。

主なメールステータス

  • 成功: 「Pass」。直訳で「通過」。目指すのはこれ。
  • 拒否: 「Fail」または「Soft Fail」。「Soft Fail」はどちらかというと失敗に近いかも。「Fail」は強い拒否なので、およそ迷惑メール行き。
  • 中立: 「Neutral」。未設定の場合は大体これ。

つまり、自社、または自社関連サービスからのメールは全て「Pass」にしておくのがベターです。

まとめ: SPF設定はポイントだけ絞れば意外と簡単!迷惑メール対策はここから始めよう!

迷惑メール対策の鉄則!先ずはSPFから始めよ!

焦点を絞ると、最初よりSPFに対する抵抗感みたいなものは無くなったのではないでしょうか。

また、ブラウザ版のGmailなどでは、「ソースの確認」からSPFやDKIMのステータスも見られるのでテスト受信におすすめです。

SPFのステータス例。

サンダーバードの受信メールソース。※念のため一部マスク。

段々セキュリティも厳しくなっています。

メールの設定も、この機会に確認してはいかがでしょうか。

慣れないうちは、有名なレンタルサーバーがおすすめです。

最初から、メールなどの基本設定がされています。

AWSなどのクラウドサービスは、自由度が高ぎるため慣れないうちはおすすめしません。

一番大事なのは、「メールが正しく届くこと」。

自分の成長を確認しながら、着実に成果と実力を伸ばしていきましょう!

おすすめ記事をCHECK!

aptがあればapt-getは不要? 1

Debian系のパッケージ管理として「apt」が登場してから、時々「apt-getは不要!」という話を聞くことがあります。 結論から言うと、公式では「使い分けよう」が正解です。 公式の方では、次のよう …

2023年2月時点。新しくなったAWSシークレットキーの作り方。 2

AWSの管理画面は、結構頻繁に変わりますよね。 以前まではIAMとシークレットアクセスキーを同時に作成できましたが、今はその機能が見当たらなくなりました。 結論としては、IAMのユーザーを作成後に、設 …

初心者におすすめ! 失敗しないレンタルサーバー3選。 3

ある程度経験がないと、レンタルサーバーはどれも同じに見えるかもしれません。 しかし、選び方次第で、設定に2倍、3倍の時間がかかってしまうこともあります。 そこで今回は、コスパ・使いやすさに特化した3つ …

-サーバー関連
-