デフォルトの設定だと、検証済み ID (SES に持ち込むドメイン) は amazonses.com のエイリアスとして認証されているので、 SPF,DKIM は有効だけど、 DMARC は有効にならない? いやそんなことはないのか? よくわからん。
ちなみに突然 DMARC が飛び出してきたのは、 Gmail が 2024/02 からポリシーを変更するので。
追記
すまん!
色々書いたけど、 AWS SES サンドボックス外に移動して使えてる人は、以下の様な TXT レコード追記すれば、カスタム MAIL FROM 関係なくとりあえず DMARC 有効になるわ!
example.com
ドメインで DMARC を設定する場合
レコード名 | レコードタイプ | 値 |
---|---|---|
_dmarc.example.com |
TXT |
"v=DMARC1;p=none;pct=25" |
レポートメール何も受信しなくて邪悪だから、とりあえずって感じなのでメール受信はおいおい整備してやってくれよな!
DMARC レコードの登録
DMARC のレコードはご案内してくれないので、自分で作る必要がある。 あまり難しくない。
クラスメソッドくんの記事を参考に以下のように作る。
"v=DMARC1;p=quarantine;pct=25;rua=mailto:dmarcreports@example.com"
メールの振る舞い
特に p=
のメールの振る舞いについては Google のナレッジベースがわかりやすい。
以下雑に引用する。
none 受信サーバーによる DMARC チェックに合格しなかったメールに対して、何の処理も行いません。メールは通常どおり受信者に配信されます。
quarantine 受信サーバーによって DMARC 認証されないメールは、受信者の迷惑メールフォルダに送信されます。
reject 受信サーバーによって DMARC 認証されないメールは拒否され、受信者に配信されることはありません。
AWS SES はドキュメントで quarantine
を例示しているけど、対 Gmail 視点だったら「DMARC を有効にしているのが必要であって、振る舞いは (条件にもよるが) none
でも構わない」と読み取れるので、メールサーバの層以外で変な動作を噛ませない、という意味でも none
にしておく方がよさそう。
レポートメール
rua
ruf
の値、それぞれ「集計レポート」「失敗レポート」の送信先メールアドレスを指定するもの。
これなんだけど、僕はずっと指定しないといけないと思っていたのだけど、実はそんなことはなく指定しなくても DMARC としては有効っぽい。
また大正義クラスメソッドくんからの引用なんだけど、過去の大手なんかはまずレポートメールの指定してない、みたいなトコがある模様。
とはいえ受信しておくに越したことはないし、SPF, DKIM, DMARC で証明するドメインで受信しないといけない、というルールもなさそうなので、例えば運用するドメインが example.com
で、技術運用担当が example.info
とかだった場合、 rua
ruf
に example.info
ドメインを指定しても大丈夫そう。
ちなみに rua
ruf
それぞれ別ユーザで指定しないといけない、みたいなアレもないはずなので、同じアドレスを設定してメール受信環境でフィルタリングしたほうが楽そう。
僕が考えるめっちゃいい? DMARC レコード 2024
以上を鑑みると、だいたい以下のような感じになるのではないだろうか。
"v=DMARC1;p=none;pct=25;rua=mailto:{受信するアドレス};ruf=mailto:{受信するアドレス}"
AWS SES は特に SPF, DKIM は何も考えなくても、殆どの場合で有効になるので、 DMARC の設定は入れ得、みたいなトコあるのでやっといて損はないと思う。
追記 2024/01/22
弁護士ドットコムの記事を見ていて気付いたけど、たしかにルートドメイン・サブドメインの考慮は必要そうですね。
AWS 的には検証済み ID に入ったドメインはサブドメイン問わず送信できるので、 sp=
値は考慮せず全部ルートドメインの振る舞いに合わせて良さそうですが。
例えば example.com
は AWS SES で運用しているけど、 mail.example.com
は自前で postfix など利用して環境を構築している (ウェブメーラーなど使いたいので) みたいなユースケースだと気をつける必要ありそう。
いやあ、面倒見ている環境が上記と似たようなパターンになりそうでウモモモッってなったので急いで書いているだけですが。
これ sp=
書かないと暗黙的にルートドメインとおなじらしいけど、 上記の場合 example.com
mail.example.com
でそれぞれ SPF, DKIM, DMARC 設定したらそれぞれのドメインレコード参照してくれのかな。 このあたり含めて DMARC って受信側マターだから、RFC 7489 - Domain-based Message Authentication, Reporting, and Conformance (DMARC) に書いてあるじゃん、と言われてもちょっと不安なんだよな。
まあ弁護士ドットコムの記事でも書いてあった通り、ほとんどのトコが「Gmail くんがやれっていうから(しぶしぶ」という雰囲気なんだよな。
レポートの解析基盤
入れないとレポートの持ち腐れだしなあ、という気持ちでやる。
このあたりが参考になるはず。