✉️

SendGridのDomain Authenticationをmess with dnsで試す

2022/01/01に公開

SendGridではDomain Authenticationという機能を使って簡単に送信ドメイン認証を設定できます。SPFとDKIMに対応するためのDNSレコードをSendGridが出力してくれるので、ドメインを管理しているレジストラで設定します。

運用中のドメインに適用する前に他のドメインでDomain Authenticationを試したい、という場合にmess with dnsを使うと便利です。今回の記事ではその方法を紹介します。

mess with dnsとは?

DNSの設定を簡単に試せるサービスです。ユーザ登録は不要なのでサクッとDNSレコードを作成できます。また、DNSクエリの確認もできるので、中で何が起きているのかすぐに把握できます。詳しく知りたい方はGigazineの記事をどうぞ。

ドメインの発行

Start experimentingを押すと xxxxx.messwithdns.com (xxxxxの部分は自動で割り振られた文字列)というサブドメイン付きのドメインが発行されます。


DNSレコードのことを全く知らない...という方は画面右の「Try an experiment!」に表示されているチュートリアルを実施するのがオススメです。

SendGridのDomain Authentication

mess with dnsで発行されたドメインをSendGridのDomain Authenticationに設定します。mess with dnsはDNS hostのレジストら一覧に掲載されていないので「Other Host(Not Listed)」を選びます。

From Domainの欄にmess with dnsで発行された xxxxx.messwithdns.com を設定して「Next」を押します。

CNAMEレコードが発行されるので、これをmess with dnsに設定します。

CNAMEレコードの作成

mess with dnsのレコード欄でTypeを「CNAME」にして先ほど表示されたCNAMEレコードの値を入力します。

画面とマッピングさせるとこんな感じです。

同じ要領で残りの2レコードも作成します。mess with dnsで以下のように3つのCNAMEレコードが表示されたらOKです。

再びSendGridのDomain Authenticationに戻ってVerifyボタンを押して設定が正しく行われているか検証します。

It worked!と表示されたら成功です。

mess with dnsのRequestsを見るとVerifyでどのようなDNSクエリで問い合わせされたのか確認できます。

メール送信

全て完了したので、Domain Authenticationで設定したドメインをヘッダFromに設定してSendGridのAPI v3でメールを送ります。

POST https://api.sendgrid.com/v3/mail/send HTTP/1.1
Authorization: Bearer SG.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Content-Type: application/json

{
  "personalizations": [
    {
      "to": [{"email": "example+messwithdns@gmail.com"}]
    }
  ],
  "from": {"email": "sender@xxxxx.messwithdns.com"},
  "subject": "mess with dns",
  "content": [
    {
      "type": "text/plain",
      "value": "mess with dns"
    }
  ]
}

無事にメールが届いて、ヘッダを確認すると独自ドメイン xxxxx.messwithdns.com で認証されています。

mess with dnsのRequestsをみるとGoogle LLCからDNSに問い合わせが来ています。SPF,DKIMに加えてDMARCの確認も行われています。(SendGridではDMARCに関する機能は提供してないので自身で設定する必要があります)


SendGridのサポートをしているとDomain Authenticationの設定に関するお問合せをよく受けます。mess with dnsを使うとドメインを所有していない場合でも今回のように非常に簡単に設定できるので、まずはどんな手順で設定するのか実際に試してみるのがオススメです。

Discussion