もう1年以上も前からGoogle AppsでDKIM認証が使えるようになっていたみたいです。DKIM認証とは、メールに電子署名をつけて送信することで、送信元アドレスが偽造されていないことを証明する機能です。SPFとあわせて、送信元アドレスの信頼性を向上させる技術として知られています。1年前から携帯会社から提供されるキャリアメールの代替として独自ドメインのメールを使っているため、キャリアメールのフィルタリングに引っかかって有無を言わさず削除されてしまうと、こちらでは判定結果が分からないことが多いためかなりの死活問題です。そこで、今使っている独自ドメインの信頼性を向上させるために、SPFとDKIMを同時に設定することにしました。ちなみに、私はVALUE DOMAINを使っていますので、これ以降はVALUE DOMAINでの設定方法になります。他のドメイン登録サービスを使っている方はそのままつかえる情報ではないことにご注意ください。

SPFの設定方法
SPFに関してはあっさり設定することができます。DNSにTXTレコードとして“v=spf1 include:_spf.google.com ~all”を設定するだけです。ルート (example.com) であれば“txt @ v=spf1 include:_spf.google.com ~all”、サブドメイン (test.example.com) であれば“txt test v=spf1 include:_spf.google.com ~all”と記述してください。

DKIMの設定方法
DKIMの設定に時間がかかりました。特に、サブドメインのDNSレコードがなかなかGoogle側に認識してもらえませんでした。これもどうにか解決することができたので、備忘録も兼ねて残しておきたいと思います。一応サブドメインにおけるDKIMの設定方法としてGoogleからヘルプが公開されていますが、公開されている情報が不正確だったので使い物になりませんでした。よって、ここでは間違っている部分を正しながら説明することとします。

まず、ルート (example.com) でDKIMを設定する場合はそのまま設定すればいいだけなので、特に悩むことはありません。DKIMのレコードを生成する前にレコード名のプレフィックスを指定するダイアログが表示されますが、特に変更しなければ標準のレコード名 (google._domainkey) が生成されます。変更した場合はそれを使うようにしてください。特に変更がなければ“txt google._domainkey TXTレコード値”の順番でDNSレコードに記述します。

サブドメイン (test.example.com) の場合ですが、Googleのヘルプではレコード名で“google_domainkey.test”を使うように指示されていますが、ここが間違っている情報になります。サブドメインでDKIMを設定する場面であっても、“google._domainkey”を使います。googleの後ろにドットを入れ忘れないようにしてください。つまり、サブドメインでDKIMを設定する場合には“txt google._domainkey.test TXTレコード値”の順番でDNSレコードを記述すればいいことになります。

SPFはDNSが浸透すれば自動的に認証が始まるのに対し、DKIMはDNSが浸透してからGoogle Appsの設定画面で認証を開始しないと有効になりません。DNSが浸透するまで12〜48時間はかかりますので、まあ気長に待ちましょう。

動作の確認方法
実際に認証が機能しているかを確認するには、Gmailに対してメールを送ってみるのが一番簡単な方法です。他に持っているGmailのアドレスに対して、空メールでもなんでもいいのでメールを送ってみましょう。受信したメールのソースを見て”Received-SPF:”という行に”pass”と記述されていればSPFは正常に機能しています。DKIMは”Authentication-Results:”という行に”dkim=pass”と記述されていれば正常に機能しています。