亀のコツコツクラウドインフラ

2024年12月16日 (最終更新日:2024年12月19日)

SPFレコード、何を書く?DNS設定の基礎と具体的な書き方を完全解説

はじめに

結論として、SPFレコードを書かないと迷惑メールで送信されたり、受信されなかったりするから必ず設定しましょう。

SPFレコードはメールの送信元が正しいかどうかを確認する技術です。
正しく設定を行わないと、送信エラーが発生したり、迷惑メールとして送信される可能性があります。
そのため、SPFレコードの設定はメールを送信する上で必須な技術になります。

本記事ではSPFレコードの仕組みや正しい書き方について解説していきます。

SPFレコードとは

概要

SPFレコード(Sender Policy Framework)は、メールの送信元が正規のサーバーから送信したものかを検証するための技術です。

DNSレコードの一つとして設定され、受信側メールサーバーがSPFレコードを確認することで、メールのなりすましや不正送信を防止します。

例えば、SPFレコードを設定していなければ、メールサーバー管理者がメールを送ってもなりすましメールとみなされて送信できなくなります。

重要性

いくつかの理由があります。

  • なりすましメールの防止:攻撃者が他人のドメインを偽装して送信するなりすましメールを防ぐ
  • 迷惑メール判定の防止:正規のメールでも迷惑メールとして扱われる可能性がある
  • メールの信頼性:送信元としての信頼性を高めて、受信されやすくなる

基本的な仕組み

SPFレコードは、DNSのTXTレコードに設定されます。どのサーバーがドメインからメールを送信する権限を持っているかを記述します。

v=spf1 include:_spf.[domain.com] ~all
v=spf1SPFレコードのバージョン指定
include許可するサーバーを指定
~allそれ以外のサーバーは許可しない

流れ

メール送信時に、SPFレコードを設定しておきます。

受信したメールの送信元ドメインを確認し、DNSからSPFレコードを取得します。

SPFレコードが指定されたサーバーが送信元IPアドレスと一致すれば、正規のメールとして送信することができます。

設定例

各自レジストリのDNSレコードを追加する設定にTXTレコードを追加します。
TXTレコードの値に許可したいドメインを記述します。

Gmailのメールサーバーを許可する場合は以下を設定しましょう。

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

複数のサーバーを許可する場合は以下を設定しましょう。

v=spf1 ip4:192.0.2.0/24 include:_spf.[ドメイン名] ~all

AWSにおけるSPFレコード

AWS Route53でTXTレコードを設定してコードを記述します。

v=spf1 ip4:192.0.2.0/24 include:_spf.kamelabo.site include:_spf.google.com ~all

SPFレコードが正しく設定されてるかは以下で確認できます。

MXToolBox

まとめ

SPFレコードの設定で以下のことを解決することができます。

  • なりすましメールの防止
  • メールの迷惑メール判定防止
  • 送信元の信頼性向上

メールの信頼性を高めるために、SPFレコードの設定は必須です。今回紹介した手順を参考に、必ず設定するようにしましょう。

この記事を書いた人

コツコツ亀

コツコツ亀

Webエンジニアとして活動中
AWSを使用してWebアプリケーションを作ったり、サーバーを構築したりしています。

関連記事

新着記事