Help ScoutのSPF・DKIM・DMARC設定。
Help Scoutは、送信するサポートメールを共有のSPFのincludeではなく、CNAMEで委任するDKIMによって認証します。受信トレイを「Use Help Scout」で送信するように設定すると、メールはHelp Scoutのメールサーバーから送信されますが、DKIM鍵をHelp Scoutに委任する2つのCNAMEレコードを追加すれば、自社ドメインとしてDKIM署名されます。Help Scoutには、追加すべきSPFのincludeはあえて用意されていません。Help ScoutのサーバーはHelp Scoutが所有するドメイン上のVERP(variable envelope return path)を使ってSPFに成功するため、DMARCのアライメントを実際に一致させるのはDKIMです。このガイドでは、Help Scoutのダッシュボードでの具体的な操作経路、2つのCNAMEレコード、Help Scoutが各自での公開を求めているDMARCレコード、そしてすべての確認方法を説明します。
Help Scoutを認証すべき理由
GoogleとYahooは現在、認証されていないメールを拒否するか、迷惑メールフォルダーに振り分けています。Help Scout自身も、1日あたり5,000通以上を送信するドメイン(Help Scoutだけでなくすべての送信元の合計)にはDMARCレコードが必要だと案内しています。DKIMのCNAMEがないと、Help Scoutのサーバーから送った返信には、自社ドメインの「on behalf of」(代理)としてhelpscout.netの署名しか付きません。Fromアドレスとアライメントが一致する署名がないためDMARCに失敗し、迷惑メールに振り分けられるかバウンスします。その結果、到達率とサポートアドレスの送信者レピュテーションの両方が損なわれます。
Help ScoutにおけるSPFの実情
Help Scoutは珍しいケースで、SPFのincludeの追加を求めておらず、追加してもDMARCには何の効果もありません。Help Scoutのサーバーから送信する場合、SMTPエンベロープのreturn-pathは、Help Scoutが所有するドメイン上のVERP(variable envelope return path)アドレスになります。従来のSPFのincludeが許可していたのと同じhelpscoutemail.comです。そのためSPFはHelp Scoutのドメインに対して評価され、Help Scout側で成功しますが、そのドメインはFromドメインではないのでSPFの「アライメント」は一致しません。つまり、この方法で送るメールでは、SPFがDMARCの条件を満たすことはありません。DKIMのCNAMEが重要なのはまさにこのためです。DKIMは自社ドメインとして署名し、Help Scoutから送信するメールでDMARCのアライメントを一致させる唯一の手段です。以前にinclude:helpscoutemail.com(または同様のHelp Scoutのメカニズム)をSPFレコードに追加した場合は、削除してください。Help Scoutも、これは従来方式で今は不要だと明言しています。自社のメールボックスサービス(Google Workspace、Microsoft 365など)用の既存のSPFレコードはそのままで、Help Scoutが追加するものはありません。唯一の例外は受信トレイをCustom SMTPまたはGoogle OAuthに切り替えた場合で、メールは利用中のサービスのサーバーから送信されるため、Help ScoutのCNAMEではなく、そのサービスのSPFとDKIMが適用されます。
設定手順
- 1
受信トレイごとの送信方法を決める
Help Scoutの送信モードは3つあります。Use Help Scout(Help Scoutのサーバーを使用。以下のDKIM CNAMEが必要)、Custom SMTP(自社のメールサーバー経由で中継)、Google OAuth(Google Workspaceから送信)です。このガイドでは、デフォルトのUse Help Scoutの手順を説明します。Custom SMTPまたはGoogle OAuthを選ぶ場合は、CNAMEを省略し、利用中のサービスのSPF/DKIMでアライメントを一致させてください。
- 2
Help ScoutでDKIMのCNAMEレコードを開く
Outgoing Emailで受信トレイをUse Help Scoutに設定します。デフォルトでは、メールは自社ドメインの代理としてhelpscout.netで署名されます。自社ドメインとして署名するために、strong1._domainkeyとstrong2._domainkeyのセレクターによる2つのCNAMEレコードが表示され、それぞれhelpscout.net配下の対応するホストを指しています。両方を正確にコピーしてください。なお、受信トレイがHelp Scoutのデフォルトのアドレス(…@helpscoutapp.com)を使っている場合、この作業は不要です。DKIMの委任が関係するのは独自ドメインだけです。
- 3
DNSホストで2つのCNAMEレコードを追加
DNSプロバイダーで2つのCNAMEレコードを作成します。strong1._domainkey → strong1._domainkey.helpscout.netとstrong2._domainkey → strong2._domainkey.helpscout.netです。多くのDNSホスト(GoDaddy、Cloudflare、Namecheap)はドメインを自動で付加するため、Host/Nameフィールドにはドメインより前の部分(例:strong1._domainkey)だけを入力します。cPanelベースのホストでは、値の末尾にドットが必要です。必ず両方のレコードを追加してください。2つ目のセレクターは、Help Scoutが鍵のローテーションに使います。
- 4
プロキシを無効にしてレコードをDNS onlyに設定
DNSホストがトラフィックをプロキシしている場合(Cloudflareのオレンジのクラウドや同様のCDNプロキシ)は、両方のCNAMEでオフにしてください。プロキシが有効なCNAMEはHelp Scoutではなくプロキシに解決され、DKIMの検証に失敗します。Cloudflareでは、strong1._domainkeyとstrong2._domainkeyのProxy statusをDNS only(グレーのクラウド)に設定します。
- 5
Help Scoutの従来のSPFのincludeを削除
過去にinclude:helpscoutemail.com(または他のHelp Scoutのメカニズム)をドメインのSPF TXTレコードに追加した場合は、そのメカニズムだけを今すぐ削除してください。Help Scoutも今は不要だと明言しています。このメカニズムはDMARCにも役立ちません。SPFの他の部分(GoogleやMicrosoftなど、メールボックスサービスのinclude)はそのままにしてください。
- 6
DMARCレコードがなければ公開
Help ScoutはDMARCレコードを生成しないため、利用者が自分で公開します。ポリシーをp=noneにした_dmarcのTXTレコードを、ruaのレポート送信先を付けて追加すると、ポリシーを引き上げる前に結果を確認できます。DKIMのアライメントが一致していることを確認できたら(dkim=pass、header.d = 自社ドメイン)、ポリシーをp=quarantine、さらにp=rejectへと引き上げます。
- 7
反映を待ち、Test Settingsをクリック
CNAMEの変更が反映されるまでには、数分から24~48時間かかることがあります。テストする前に少なくとも1時間は待ってください。受信トレイのOutgoing Emailセクションに戻り、Test Settingsボタン(左下)をクリックします。両方のCNAMEが解決されると、DKIMのステータス表示がActiveに変わります。
- 8
実際の返信で外部から確認
Help Scoutの受信トレイから自分が管理するアドレスに返信を送り、メールの生のヘッダーを確認します。Authentication-Resultsにdkim=passとheader.d=yourdomain.com、そしてdmarc=passが表示されていることを確認してください。Help Scoutのステータス表示だけに頼らないよう、CNAMEとDMARCレコードを外部のチェックツールでも照合します。
追加するレコード
正確な値はHelp Scoutのセットアップウィザードで生成されます。以下は、DNSホストに追加するレコードの形式を示したものです。
| タイプ | ホスト | 値 |
|---|---|---|
| CNAME | strong1._domainkey | strong1._domainkey.helpscout.net1つ目のDKIMセレクター。ほとんどのDNSホストでは、Host/Nameフィールドにドメインより前の部分だけを入力し、DNS only(プロキシなし)に設定します。値は固定で、すべてのHelp Scoutアカウントで同じです(アカウント別の鍵ではなくCNAMEによる委任)。 |
| CNAME | strong2._domainkey | strong2._domainkey.helpscout.net2つ目のDKIMセレクターで、鍵のローテーションに使われます。1つ目だけで足りるように見えても追加してください。strong2がないと、鍵のローテーション後に署名が機能しなくなることがあります。 |
| TXT | @ | v=spf1 include:_spf.google.com ~all例です。これは自社のメールボックスサービス用の既存のSPFレコードです(ここではGoogle Workspaceの例)。Help Scoutが追加するものはありません。Help Scoutのincludeは追加せず、include:helpscoutemail.comが残っていれば削除してください。 |
| TXT | _dmarc | v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.comDMARCの最初の設定例です。Help Scoutはポリシーを指定していません。p=noneから始めて集計レポート(rua)を監視し、DKIMのアライメントが一致したらp=quarantine、p=rejectへ移行します。 |
ルートドメインのSPF(v=spf1)のTXTレコードは1つだけにし、すべての送信元をこの1行にまとめてください。SPFレコードが2つあると、それ自体がエラーになります。
DNSルックアップの10回制限
SPFのDNSルックアップは10回までに厳格に制限されており、超えるとpermerrorを返して、どの受信側でも検証されなくなります。Help Scoutの設定がこの上限のうち何回を消費するかは、次のとおりです。
Help Scoutの推奨設定はルックアップを消費しません。10回すべてを、includeが必要な他の送信元に使えます。
DKIM
DKIMはCNAMEで委任します。Help ScoutはDKIMの秘密鍵をHelp Scout側で生成・保管し、公開鍵をstrong1._domainkey.helpscout.netとstrong2._domainkey.helpscout.netに公開しています。自社ドメインの2つのCNAMEレコード(strong1._domainkeyとstrong2._domainkey)がこれらのホストへ参照を委任するため、受信側のサーバーは自社ドメインの配下で有効な公開鍵を取得できます。これにより、Help Scoutが送信するすべてのメールにはd=yourdomain.comの署名が付きます。この署名ドメインとFromアドレスのアライメントが一致することで、DKIMがDMARCの条件を満たします。CNAMEを設定するまで、メールは自社ドメインの「on behalf of」(代理)としてhelpscout.netで署名されるため、アライメントは一致しません。2つのセレクターがあることで、Help Scoutはダウンタイムなしで鍵をローテーションできます。両方が必要なのはこのためです。CNAMEによる委任なので、長い鍵の文字列を貼り付ける必要はなく、Help Scoutが鍵をローテーションしても更新は不要です。
DMARC
DMARCレコードの公開は利用者の責任です。Help ScoutはDKIMで署名しますが、DMARCレコードは作成せず、ポリシーは各自で作成するよう案内しています。ドメインに_dmarcのTXTレコードを1つだけ追加してください。まずrua=のアドレスを付けたv=DMARC1; p=noneから始めます。集計レポートで、Help Scoutから送信したメールのDKIMアライメントが一致しているか(ドメインの他の送信元も一致しているか)を確認できます。Help Scoutのトラフィックでdkim=pass / header.d = 自社ドメインとなることをレポートで確認できたら、p=quarantine、さらにp=rejectへと引き上げます。なお、Help Scoutから送信するメールではSPFのアライメントは一致しないため(VERPのreturn-pathはHelp Scoutのドメインです)、ここでのDMARCはDKIMに頼ることになります。DKIMのCNAMEがActiveと表示されるまでは、厳しいポリシーを適用しないでください。
正しく設定できたか確認する
確認は2段階で行います。まずHelp Scout内で、DNSの反映後に受信トレイのOutgoing EmailセクションにあるTest Settingsをクリックし、DKIMのステータスがActiveと表示されることを確認します。次に、アライメントを実際に確かめます。受信トレイから自分が管理するメールボックスに返信を送り、メールの生データを開いてAuthentication-Resultsを確認します。dkim=passでheader.d=yourdomain.com、そしてdmarc=passとなっていれば成功です。別途、2つのCNAMEがhelpscout.netに解決されること(MX ToolboxなどでのCNAME検索)を確認し、_dmarcのTXTが正しく解析されることも外部のSPF/DKIM/DMARCチェックツールで確認してください。Help Scoutのステータス表示だけに頼らないでください。確認できるのはレコードが解決されることだけで、DMARCのアライメントがエンドツーエンドで一致していることまではわかりません。
よくある注意点
- DNS設定
プロキシが有効なCNAMEでは、気付かないうちにDKIMが機能しなくなります。DNSホストがトラフィックをプロキシしている場合(CloudflareのオレンジのクラウドまたはCDNプロキシ)はオフにし、strong1._domainkeyとstrong2._domainkeyの両方をDNS onlyに設定してください。プロキシが有効なレコードはhelpscout.netではなくプロキシに解決され、Test SettingsはいつまでもActiveになりません。
- DNS設定
Hostフィールドにドメイン全体を貼り付けないでください。GoDaddy、Cloudflare、Namecheapはドメインを自動で付加するので、strong1._domainkey / strong2._domainkeyだけを入力します。レコードがstrong1._domainkey.yourdomain.com.yourdomain.comになると解決されません。cPanel系のホストは逆で、値の末尾にドットが必要です。
- 認証失敗の原因
Help ScoutのSPFは手順ではなく、むしろ罠です。include:helpscoutemail.comを追加してもDMARCには効果がありません。Help ScoutのVERPのreturn-pathは自社ドメインではなくHelp Scoutのドメイン上にあるため、SPFに成功してもアライメントは一致しません。Help Scoutも、includeが残っていれば削除してDKIMに頼るよう案内しています。
- DNS設定
1つ目だけでなく、両方のCNAMEを追加してください。strong2._domainkeyは鍵のローテーションに使われます。これがないと、次にHelp Scoutが鍵をローテーションした際に署名が失敗することがあり、数週間後、気付かないうちにメールがDMARCに失敗し始めます。
- DNS設定
DKIMの委任はドメイン単位ですが、「Use Help Scout」の設定は受信トレイ単位です。2つのCNAMEはそのドメインのすべての受信トレイをカバーしますが、新しい受信トレイではOutgoing EmailをUse Help Scoutに切り替えて再テストする必要があります。DNSはすでに設定済みなので、変更するのは受信トレイの設定だけです。
- DNS設定
受信トレイをCustom SMTPまたはGoogle OAuthに切り替えると、前提がすべて変わります。メールは利用中のサービスのサーバーから送信されるため、そのサービスのSPFとDKIMがアライメントを一致させ、Help ScoutのCNAMEは署名に使われなくなります。切り替えた後は認証を再確認してください。
- DNS設定
DNSの反映の遅れによって、誤って失敗と判定されることがあります。CNAMEの反映には最大24~48時間かかることがあります。Test Settingsをクリックする前に少なくとも1時間待ち、DKIMがActiveと表示されてレポートでアライメントの一致を確認するまでは、DMARCをquarantine/rejectに引き上げないでください。
- 適用範囲
デフォルトの…@helpscoutapp.comアドレスでは、この設定は一切不要です。DKIMの委任が関係するのは、Help Scoutのサーバーから独自ドメインで送信する場合だけです。Help Scoutに組み込みの受信トレイアドレスのみを使っているなら、設定するものはありません。
SPFレコードを作成
Help Scoutでは、ルートドメインにSPFのinclude:を追加する必要はありません。作成ツールを使って他の送信元用のクリーンなレコードを1つ組み立て、1行に収めてください。
送信元
メールの送信に使っているサービスを検索して、それぞれチェックを入れてください。
上の検索欄で利用中のメールサービスを検索するか、してください。
このドメイン自身のサーバー
ドメインが(上記のサービスを経由せず)直接メールを送信する場合は、ドメイン自体を許可します。
その他の送信元・IP
リストにないもの(別のサービスのSPFホストや特定のIPアドレス)を追加します。
接頭辞のinclude:は自動で付加されます。サービスのドキュメントに記載されているホスト名を入力してください。
その他すべての送信元へのポリシー
上記に記載されていないサーバーからのメールを、受信側がどう処理すべきかを指定します(allメカニズム)。
送信元がまだないため、すべてのメッセージに~allポリシーが適用されます。ステップ1で利用中のサービスを追加してください。
- ルートドメインにTXTレコードとして公開します。ホストは@(ドメインそのもの)、値は上記の文字列全体です。
- SPFレコードは1つのドメインにつき1つだけにします。すべての送信元をこの1行にまとめてください。v=spf1で始まるTXTレコードが2つあると、両方とも無効になります。
- DNSルックアップは10回以内に収めてください。include:、a、mxはそれぞれ1回とカウントされ、includeは内部でさらにルックアップを発生させることがあります。ip4:とip6:はカウントされません。
送信ドメイン認証の設定が済んだら、次は検証済みのクリーンなリストへの配信です。
リストを検証Help ScoutのSPFに関するよくある質問
関連記事
ヘルプデスク・CRMの他のサービス
すべてのSPFガイド公開したら、ドメイン診断ですべてのレコードが正しく解決されることを確認し、DMARCレポート解析で自社ドメインを名乗って送信している送信元を把握します。作成ツールではすべての送信元を確認できます。ただし、認証は到達率対策の半分にすぎません。送信IPやドメインがブラックリストに掲載されていると、SPFの設定がどれほど適切でも迷惑メールに振り分けられます。そのため、ブラックリスト監視で掲載状況を確認しておくことをおすすめします。
認証の次は、リストをクリーンに保つ
SPF、DKIM、DMARCに成功すれば受信トレイに届き、クリーンなリストならその状態を維持できます。お手持ちのリストも検証してクリーニングできます。100クレジット無料、クレジットカード登録不要で始められます。