送信ドメイン認証(そうしんドメインにんしょう、 Sender Domain Authentication)とは、差出人メールアドレスが詐称された電子メール(いわゆる、なりすましメール)の判別を目的とした技術。
迷惑メール対策の一つとして使われており、受信側のメールサーバで送信者情報(reverse-path)を検証することで、差出人メールアドレス(ヘッダFrom)のなりすましを検出している。

https://ja.wikipedia.org/wiki/%E9%80%81%E4%BF%A1%E3%83%89%E3%83%A1%E3%82%A4%E3%83%B3%E8%AA%8D%E8%A8%BC

つまりWordPressでお問い合わせフォーム作った!でも迷惑メールにはいっちゃう〜!!というのは送信ドメイン認証のせい。
我々は送信ドメイン認証に守られているものの、制作側に回ればその壁と対峙する必要がある。

使用されている主な技術

SPF(Sendor Policy Framework)

差出人メールアドレス(ヘッダFrom)のIPアドレスと、送信元メールアドレス(エンベロープFrom)のドメインのSPFレコード(メール送信が許可されたIPアドレスのリスト)を、受信側のメールサーバーで検証する方法。
ただし、ドメインの詐称には有効ではあるが、アカウント名だけを詐称していたり、送信が許可されているメールサーバーから送信している場合には対応できない。
対応方法はDNSレコードにSPFレコード(TXTレコード)を記述するだけでいい。

// メールサーバーが一つしかない場合
v=spf1 ip4:192.168.100.3 ~all
// Aレコードで指定する場合
v=spf1 a:mail.example.jp ~all
// MXレコードで指定する場合
v=spf1 mx ~all
// include機構を使用
v=spf1 include:mail.example.jp ~all
// redirect変更子を使用
v=spf1 redirect:mail.example.jp ~all
// 複数記載する例
v=spf1 a:mail1.example.jp a:mail2.example.jp ~all

~all と -allの違い:
~allと-allの前の機構によって認証が通らなかったアドレスをどう処理するかを示しており、「-」はすべて認証しない、「~」ははっきりと認証失敗として扱ってほしくない場合に使用している。

include機構:
ドメイン名を引数とし、include先ドメインのSPFレコードで認証が通る場合、認証を通す。

redirect変更子:
redirect先のドメインのSPFレコードを使用する。
redirectを使用した場合、redirect以外の機構は使用しないようにする。

DKIM(DomainKeys Identified Mail)

送信側のメールサーバーでメールに電子署名を付加し、受信側で送信元メールアドレスのドメインのDKIMレコード(送信元ドメインのDNSのTXTレコードを公開鍵として扱う)を使って電子署名を検証する。
電子署名を使用しているため、配送途中のメールの改ざん検出にも対応している。
プログラムではなく、メールサーバー側で実装する必要がある。

DMARC

SPFとDKIMのポリシーを併用したもの。