www.ni4.jp

DKIM署名とDMARCポリシーで、メールの信頼性を高めてみよう

ども、どもども。
気がつくと2024年も3ヶ月が過ぎ、4月に入っていました。
あけましておめでとうございます…。

さて、1年ほど前になりますが、Gmailにメールが届かないときは、SPFレコードをDNSに登録しようという記事を書きました。

この記事では、独自ドメインを使用したメールがGmailに届かなくなってしまった場合への対処として、SPFレコードを登録する方法について書いていました。
送信されたメール(ドメイン)が、その送信元として許可されているメールサーバー/ウェブサーバーから送信したものであることを、受信側で確認できるようにする仕組みです。

これで独自ドメインを使用したメールがGmailに届かなくなることはなくなりましたが、その後、Gmailのガイドラインがアップデートされ、Gmailに対し1日5,000件以上のメールを送信する場合には、SPFレコードに加え、DKIM(ディーキム)レコード/DMARC(ディーマーク)レコードの登録が必要と変更されました。

Gmail宛に1日5,000件もメールを送信することは現時点では考えにくかったので、特にこの設定はしていなかったのですが、弊社でも利用しているオンライン決済サービス Stripeから、このようなメールが届きました。

Stripe をご利用いただきありがとうございます。
この度、カスタムメールドメインの設定が変更されることをお知らせいたします。現在、お客様のメールはカスタムメールドメインから送信されていますが、ご利用のドメイン juxtaposition.jp に有効な DMARC ポリシーが設定されていませんので、以下の内容をご確認ください。

変更点
2024 年 2 月より、Google と Yahoo は迷惑メールに対処するための変更を順次実施しています。一括メール送信者に義務付けられる要件の 1 つに、SPF と DKIM と共に有効な DMARK ポリシーを併用してメールの認証を実行することがあります。
Stripe では、貴社のカスタムドメインから送信されるメールの認証に、すでに SPF と DKIM を使用しています。今回の新しい要件に完全に準拠するには、カスタムメールドメインを利用するための有効な DMARC ポリシーを保持していただく必要があります。

必要なご対応
ご利用のドメイン用の DMARC ポリシーをできる限り早く公開してくださいますようお願いいたします。このご対応により、お客様から Google および Yahoo のメールユーザーへのメール送信が中断されずに継続されます。DMARC ポリシーの設定方法については、Stripe のドキュメントをご覧ください。
2024/04/10までにご対応いただけない場合、お客様のメールの送信元はカスタムメールドメインではなく、stripe.com となります。

弊社製品の購入時、Stripeのクレジットカード決済/コンビニ決済を利用してお支払いいただいた際に、Stripeから送信されるメールを juxtaposition.jp で送信するようにしていたのですが、この機能(カスタムドメイン)を引き続き利用するにはDMARCポリシーの公開(DMARCレコードをドメインに登録する)が必要とのことでした。

これを良い機会と考え、Stripeでカスタムドメインに設定していた juxtaposition.jp に加え、同じく運用している juxtaposition.co.jp にもDKIM署名とDMARCポリシーを設定することにしました。

弊社では、ドメイン管理に「お名前どっとこむ」を、メールサーバーに「さくらインターネットのサーバー」を利用しているので、この記事ではそれらにあわせた内容で、設定を進めた手順をまとめておこうと思います。

Table of Contents

DKIM署名の設定

DKIM署名とは、独自ドメインを使用したメールを送信した際に、ドメインのDNSレコードに登録されている公開鍵と、メールサーバーに設定されている秘密鍵を照合できるようにしておくことで、そのメールが正しい経路で送信されたものであると証明できる署名のことです。
例えば、誰かが送信元ドメインを詐称してメールを送信しても、その送信に利用されたサーバーにあるはずの秘密鍵が存在しなかったり、異なったもので照合できない場合に、受信側で正規の経路でないことを確認できる(なりすましと判断できる)ようになります。

弊社が使用していたさくらインターネットでは、2024年1月31日のアップデートで、このDKIM署名を設定できるようになっていたので、今回はこれにならってDKIM署名の設定を進めました。

さくらインターネットでのDKIM設定

こちらのマニュアルに記載のあるとおりに進めると、すぐにサーバー側の設定は完了します。
弊社はネームサーバーにお名前どっとこむを利用していたので、「DKIM署名、DMARCを設定する(他社のネームサーバー利用の場合)」の項を参照して進めていきました。

設定が完了した画面で、セレクタ名と公開鍵の内容を以下の形式でメモしておきます。
後ほど、DNSレコード登録時にこれを使用します。

ホスト名 セレクタ名._domainkey.juxtaposition.co.jp
TYPE TXT
VALUE v=DKIM1; k=rsa; p=DKIM公開鍵

DKIM公開鍵の部分は、設定完了画面に表示されている公開鍵の -----BEGIN PUBLIC KEY----- と -----END PUBLIC KEY----- の間に記載されている暗号化された部分を1行に編集して記載します。

DMARCポリシーの設定

DMARCポリシーとは、送信したメールがDKIM署名などで迷惑メール(なりすましメール)と判定された際にどう処理するかを定めたものです。
あらかじめDNSレコードにそのような際の挙動を登録しておくことができます。

Stripeでカスタムドメインを利用する際にこのポリシーが必要になるのは、決済関連のメールを送信した際にもしそれが迷惑メールと判定されてしまうと、管理者(今回なら弊社)ではその状況を知るすべがなく、以降の対応ができなくなってしまうためと思われます。
今回はStripeの話ですが、他にも同じように独自ドメインを使用してメールを送るケース(例えばメールマガジンとか)はあると思うので、そのときにもDMARCポリシーの設定は必要になってくると思います。

DMARCポリシーの準備

DMARCポリシーの準備には、こちらを参考にしました。
書き方はもちろん、注意点などもわかりやすく記載されています。

上記を参考に、以下のように決めました。

ホスト名 _dmarc.juxtaposition.co.jp
TYPE TXT
VALUE v=DMARC1; p=none; aspf=r; adkim=r; rua=mailto:*****; ruf=mailto:*****

上記の「*****」にはメールアドレスを記載します。

DNSレコードの登録

上記のとおり、DKIM公開鍵とDMARCポリシーの情報が揃ったので、これらをDNSに登録していきます。
DNSレコードの登録方法はこちらの記事にも書いているのでここでは省略します。

DNSレコードの登録内容を確認

DNSレコードの内容はオンラインツールなどでも確認できますが、Windowsであればコマンドプロンプト、Macであればターミナルから確認できます。

上記でDNSの登録状況を確認できたので、実際にGmail宛にメールを送信してみました。
受信したメールで「メッセージのソースを表示」を開くと、以下のようになっていることが確認できます。

また、メールの送信者部分からも以下のようにDKIM署名が確認できます。

署名元として利用しているドメインが表示されると、なんだか安心しますね。

これでDKIM署名の設定と、DMARCポリシーの公開が完了となります。

DMARCレポートの確認

今回は設定しただけなのでまだ確認はできていないのですが、DMARCポリシーにrua(集計レポート)の通知先と、とruf(失敗レポート)の通知先を設定しておいたので、今後はレポートが届くと思います。
そのレポートを確認して、SPF/DKIMアライメントにPASSする必要があるようなんですが、今回はここまでにしておきます(苦笑)

独自ドメインでメールを運用するなら

最初はちょっと敷居が高いように感じた今回の件ですが、順序立てて進めていくと1〜2時間で終えることができました。

独自ドメインを使用してビジネスを行う場合、SPF/DKIM署名/DMARCポリシーは、自社だけでなく顧客も含め「なりすまし」から守ることができるので、メールの信頼性を高めて「安全なインターネット環境」を手に入れるためにも、ぜひ設定しておきたいですね!

にしやま やすふみ

札幌のウェブサイト・ホームページ制作会社 ジャクスタポジションで、代表とディレクターやってます。Movable Typeとラーメン、ザンギ、酒が好き。
プロフィール詳細はこちら

アクセスの多い記事