DNSにメール認証を書くTXTレコード

TXTレコードは、ドメインに関するテキスト情報を自由に登録できるDNSレコードで、メール認証やドメイン所有確認に広く使われます。

情報システム部とのチャット
Tatoediaの読者モブ
あなた

取引先に送ったメールが、迷惑メールフォルダに入っていたそうです……

情報システム部

うちのドメインにSPFを設定しましょう。DNSのTXTレコードに1行足します。

Tatoediaの読者モブ
あなた

TXTレコード? この前、Google Workspace の所有確認で追加したものと同じですか?

情報システム部

同じ種類です。書く中身が違うだけですね。

TXTレコードは DNS にテキストを書き込んでおけるレコードです。書ける内容に決まりはなく、「このドメインの管理者が公式に宣言した情報」として外部から参照されます。町内の公式掲示板のように、貼り出せるのはそのドメインの管理者だけで、内容は誰でも読めます。

掲示板に貼られているもの

実際に貼られる宣言は、ほとんどがメールと所有確認に関するものです。

  • このドメインのメールを送ってよいサーバー(IPアドレス)の許可リスト。SPF と呼ばれ、v=spf1 で始まる
  • メールに付けた署名を確かめるための公開鍵。DKIM と呼ばれ、v=DKIM1 で始まる
  • SPF や DKIM で確認できなかったメールをどう扱うかの方針。これが DMARC
  • SaaS が「このドメインは本当にあなたのもの?」を確かめるための確認コード

どれも書式が決まっていて、値は各サービスの管理画面やドキュメントからコピーして使うのが普通です。自分で作る必要はありません。

メールの受け取り先を指定する MXレコード と一緒に語られることが多いものの、向きは逆です。MXは受け取る先、SPF は送る側が正当かどうかを示します。

SPFは一枚にまとめる

同じドメインにTXTレコードは何行でも並べられます。SPF、DKIM、DMARC、各サービスの確認コードが縦に並んでいる状態はふつうです。

ただしSPFだけは例外で、同じドメインに複数行あると正しく評価されません。新しいメールサービスを使い始めるとき、SPFを別の行として足してしまうと、この状態になります。送信元を増やすときは、既存のSPFの1行の中に追記します。

内容を誤ると、メールが迷惑メールに振り分けられたり、受け取りを拒否されたりします。書き換える前に、今の値を控えてから作業してください。