PurelymailのSPF・DKIM・DMARC設定。
Purelymailは低価格でプライバシー重視のメールプロバイダーです。ドメイン認証には、実際のSPFのinclude、CNAMEで委任するDKIM、そして珍しいことにPurelymailが管理するDMARCレコードを使います。Account Adminポータル(purelymail.com/manage)でドメインを追加すると、短い固定のレコード一覧が表示されます。内容は、所有権確認のTXTレコード、MXレコード1つ、include:_spf.purelymail.comを中心としたSPFのTXTレコード、DKIM用のCNAME3つ、DMARC用のCNAMEです。これらをDNSホストで公開して「Check DNS records」をクリックすると、Purelymailから自社ドメインとして送受信できるようになり、SPFとDKIMの両方のアライメントが一致します。意識して決めるべきことはDMARCの扱いだけです。Purelymailが管理するp=rejectのCNAMEを受け入れるか、レポートが自分に届くよう独自のレコードを公開するかを選びます。
Purelymailを認証すべき理由
Purelymailのドメイン認証は形式的な作業ではなく、メールが受信トレイに届くかどうか、そしてなりすましを防げるかどうかを左右します。2024年2月以降、GmailとYahooは、すべての送信者にSPFまたはDKIMの成功を、すべての大量送信者(1日あたり約5,000通以上)にはさらにアライメントが一致した状態でのDMARC公開を義務付けています。Yahooも同じ月に同じルールに合わせ、Microsoftも2025年にOutlook.com/Hotmail/Liveへの適用を始めました。レコードが有効になるまで、Purelymailから送るメールと自社ドメインの結び付きは弱く、DMARCに成功できません。また、登録しただけで保護していないドメインは簡単になりすまされます。設定が済めば、Purelymailは珍しいほど有利な立場にあります。Purelymailからの送信では自社ドメインがエンベロープ(Return-Path)の送信者になるため、SPFは組織ドメインとアライメントが一致し、DKIMはd=yourdomain.comとして署名します。つまり、多くのメール配信サービス(ESP)のようにDKIMだけでなく、両方の仕組みがアライメントの一致した状態で成功します。さらに、Purelymailが管理するDMARCはp=rejectで提供され、解決された時点からなりすましメールを積極的にブロックします。注意点は、p=rejectのポリシーでは認証し忘れた正規の送信元のメールも拒否されることです。そのため、3つのレコードすべてを意識して設定することが大切です。
PurelymailにおけるSPFの実情
Purelymailは、実際にincludeで認証するサービスです。CNAMEで委任するESP(Mailchimp、Klaviyo)でも、Return-Pathを所有するリレーでもありません。ルートドメインにある1つのSPFのTXTレコードに、共有メカニズムのinclude:_spf.purelymail.comを1つ追加します。レコード全体はv=spf1 include:_spf.purelymail.com ~allです。このSPFが実際に役立つ理由は2つあります。1つ目に、このincludeはフラットなレコードに解決され、その中身は3つのip4アドレスと、そのレコード自身の~allだけです(実際に確認済み:v=spf1 ip4:34.202.193.197 ip4:54.89.13.140 ip4:3.231.132.23 ~all)。入れ子のincludeはないため、消費するのは10回のDNSルックアップのうちちょうど1回で、一部のチェックツールが推測するような2回や3回ではありません。2つ目に、多くの送信プラットフォームとは異なり、you@yourdomain.comとしてPurelymailから送信する際は、自社ドメインがSMTPのエンベロープ送信者になります。そのため、SPFは実際に組織ドメインとアライメントが一致し、DKIMと並んで、それ単独でDMARCの成功に寄与します。Purelymailが公開しているのは-allではなく~all(softfail)で、すべての送信元が記載されていることを確認する間の妥当なデフォルトです。通常のルールも当てはまります。ルートドメインのSPFのTXTレコードは1つだけにします。Google Workspace、Microsoft 365、またはトランザクション用リレーからも送信する場合は、2つ目のSPFレコードを公開せず、すべてのincludeを1つのv=spf1の行にまとめてください(SPFレコードが2つあるとPermErrorになります)。また、以前のメールホストのSPFレコードが残っていれば削除してください。
2つの設定方法
独自のDMARCレコード(TXT):管理とレポート
- v=DMARC1; p=none; rua=mailto:you@yourdomain.comを公開し、集計レポートを自分で受け取ります
- すべての送信元のアライメントが一致することを確認してから、p=none → quarantine → rejectへ段階的に引き上げられます
- ニュースレターツール、CRM、またはWebサイトのフォームからも送信する場合に安全です。ポリシー適用前にレポートで確認できます
- Purelymail以外の送信元を使う場合や、誰が自社ドメインとして送信しているかを把握したい場合に必要です
Purelymail管理のDMARCレコード(CNAME):メンテナンス不要
- CNAME(_dmarc → dmarcroot.purelymail.com)を1つ追加するだけで、ポリシー適用済みのp=rejectがすぐに有効になり、維持管理も不要です
- ポリシーはPurelymailが最新の状態に保つため、レコードを編集する必要はありません
- 失敗レポートは自分ではなくdmarc@purelymail.comに届き、集計レポート(rua)で自社ドメインの状況を把握できません
- p=rejectはすぐに適用されるため、Purelymailに限らず、認証していない送信元はすべて完全に拒否されます
設定手順
- 1
Add Domainページを開く
purelymail.com/manageのAccount Adminポータルにサインインし、上部ナビゲーションのDomainsをクリックします。次にAdd New Domainをクリックしてドメイン(例:yourdomain.com)を入力します。
- 2
Purelymailに表示されたレコード一覧をコピー
セットアップページには、このアカウントに必要なものがすべて表示されます。purelymail_ownership_proofのTXTの値、MXレコード1つ(mailserver.purelymail.com)、SPFのTXTレコード、3つのDKIM用CNAME(purelymail1/2/3._domainkey)、DMARC用のCNAMEです。所有権確認の値はドメインごとに固有なので、正確にコピーしてください。
- 3
所有権確認のTXTレコードを追加し、古いレコードを削除
レジストラまたはDNSホストで、ルートドメイン(ホストは@または空欄)に、purelymail_ownership_proof=…の値を持つTXTレコードを追加します。あわせて、競合しないよう、以前のメールサービスから残っているMXレコードとSPFレコードを削除してください。
- 4
MXレコードを追加
MXレコードを1つ作成します。ホストは@(または空欄)、値はmailserver.purelymail.com、優先度は50です。Purelymailに必要なMXレコードはこれだけです。受信メールが複数のサービスに分かれないよう、他のMXレコードは削除してください。
- 5
SPFのTXTレコードを追加(既存なら1つにまとめる)
ルートドメインにTXTレコードを追加します:v=spf1 include:_spf.purelymail.com ~all。別の送信元用のv=spf1レコードがすでにある場合は、2つ目のSPFレコードを作らず、includeをその1つのレコードにまとめてください。
- 6
DKIMのCNAMEを3つ追加
次の3つのCNAMEレコードを作成します:purelymail1._domainkey → key1.dkimroot.purelymail.com、purelymail2._domainkey → key2.dkimroot.purelymail.com、purelymail3._domainkey → key3.dkimroot.purelymail.com。タイプはCNAMEのままにし(TXTに変更しないでください)、CloudflareではそれぞれDNS only(グレーのクラウド)に設定してください。
- 7
DMARCレコードを追加(管理型か独自のレコードかを選択)
手間をかけない場合は、CNAMEの_dmarc → dmarcroot.purelymail.comを追加します。これはPurelymailが管理するp=rejectポリシーです。Purelymail以外からも送信する場合や自分でレポートを受け取りたい場合は、CNAMEを追加せず、代わりに_dmarcにTXTレコードを追加します。例:v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.com。使えるのはどちらか一方で、両方は使えません。
- 8
Check DNS recordsをクリックしてセットアップを完了
Purelymailのセットアップページに戻り、Check DNS recordsをクリックします。DNSの反映には約15分(最大24~48時間)かかります。すべて検証されたら、Deliver Mail To = Purelymailに設定し、必要に応じて復旧用にAllow Account Resetを有効のままにしてSaveをクリックします。その後、ドメインのユーザーメールボックスを作成します。
- 9
テストメールを送信してヘッダーを確認
新しいPurelymailのアドレスからGmailアカウント宛てにメールを送り、開いて⋮ → Show originalを選びます。SPF: PASS、DKIM: PASS(d=yourdomain.com)、DMARC: PASSと表示され、いずれも自社ドメインとアライメントが一致していれば成功です。
追加するレコード
正確な値はPurelymailのセットアップウィザードで生成されます。以下は、DNSホストに追加するレコードの形式を示したものです。
| タイプ | ホスト | 値 |
|---|---|---|
| TXT | @ | purelymail_ownership_proof=xxxxxxxxxxxxxxxxxxxx例です。ドメインごとの正確な値はAdd Domainページからコピーしてください。Purelymailがドメインを追加する前に必要です。 |
| MX | @ | mailserver.purelymail.com優先度50。Purelymailが使う唯一のMXレコードです。先に以前のサービスのMXレコードを削除してください。 |
| TXT | @ | v=spf1 include:_spf.purelymail.com ~allルートドメインのSPF:レコードは1つだけにし、他の送信元はまとめます。このincludeは3つのIPのフラットなレコードに解決され、DNSルックアップは1回です。自社ドメインがエンベロープ送信者なのでアライメントも一致します。 |
| CNAME | purelymail1._domainkey | key1.dkimroot.purelymail.comローテーションするDKIM鍵1(Purelymail管理)。CNAMEによる委任のため、CNAMEのままにし、CloudflareではDNS onlyにしてください。 |
| CNAME | purelymail2._domainkey | key2.dkimroot.purelymail.comローテーションするDKIM鍵2。Purelymailはローテーションする3つの鍵のいずれかで署名するため、3つすべてが必要です。 |
| CNAME | purelymail3._domainkey | key3.dkimroot.purelymail.comローテーションするDKIM鍵3。 |
| CNAME | _dmarc | dmarcroot.purelymail.comPurelymail管理のDMARC(現在はv=DMARC1; p=reject; ruf=mailto:dmarc@purelymail.comに解決されます)。これか独自の_dmarcのTXTレコードのどちらかを使います。1つの名前をCNAMEとTXTの両方にはできません。 |
ルートドメインのSPF(v=spf1)のTXTレコードは1つだけにし、すべての送信元をこの1行にまとめてください。SPFレコードが2つあると、それ自体がエラーになります。
DNSルックアップの10回制限
SPFのDNSルックアップは10回までに厳格に制限されており、超えるとpermerrorを返して、どの受信側でも検証されなくなります。Purelymailの設定がこの上限のうち何回を消費するかは、次のとおりです。
Purelymailは10回のルックアップのうち1回を消費します。ip4:とip6:のメカニズムはルックアップを消費しません。
DKIM
PurelymailのDKIMは、CNAMEにより、ローテーションする3つの鍵に委任する方式です。そのため、1つではなく3つのレコードを公開します。purelymail1._domainkey、purelymail2._domainkey、purelymail3._domainkeyをCNAMEとして作成し、それぞれkey1.dkimroot.purelymail.com、key2.dkimroot.purelymail.com、key3.dkimroot.purelymail.comを指すようにします。これらは貼り付ける形のTXTレコードではなくCNAMEなので、Purelymailが秘密鍵を保持し、dkimrootのホスト名の背後で公開鍵を公開します(それぞれPurelymail側のv=DKIM1; k=rsa; p=…のTXTに解決されます)。そして、DNSを再度編集しなくても、Purelymailが独自のスケジュールで3つの鍵をローテーションできます。これがCNAME方式の要点であり、3つすべてが必須である理由です。各メールは3つの鍵のいずれかで署名されるため、CNAMEを1つしか公開しないと、メールのおよそ3分の2がDKIMに失敗します。DKIM署名はd=yourdomain.comとして行われるため、組織ドメインとアライメントが一致し、DMARCの要件を満たします。実務上の注意点を2つ挙げます。これらをTXTレコードに変換しないでください(Purelymailのローテーションが機能しなくなります)。また、DNSがCloudflareの背後にある場合は、3つのCNAMEをそれぞれ「DNS only」(グレーのクラウド)に設定してください。そうしないと、プロキシがターゲットを隠してしまい、DKIMの検証に失敗します。
DMARC
DMARCは、Purelymailが他の多くのサービスと異なる部分です。CNAMEで提供される完全な管理型ポリシーを利用できます。CNAMEの_dmarc → dmarcroot.purelymail.comを追加すると、現在はv=DMARC1; p=reject; ruf=mailto:dmarc@purelymail.comに解決されます。これはPurelymailが維持管理する適用済みの拒否ポリシーです。Purelymailからのみ送信するドメインなら、メンテナンス不要という大きな利点があります。強力ななりすまし対策がすぐに得られ、レコードに触れる必要もありません。ただし、選ぶ前にトレードオフを理解してください。1つ目に、失敗レポート、つまりフォレンジックレポート(ruf)はPurelymail自身のメールボックスに届き、集計レポート(rua)はまったく送られてきません。そのため、誰が自社ドメインとして送信しているのか、正規の送信元が失敗していないかを把握できません。2つ目に、p=rejectは解決された時点で適用されます。他の送信元(ニュースレターツール、CRM、Webサイトの問い合わせフォームのリレー、マーケティングプラットフォーム)のメールは、すでに認証されて自社ドメインとアライメントが一致していない限り、完全に拒否されます。Purelymail以外からも送信する場合や、自分でレポートを受け取り安全に段階を踏みたい場合は、代わりに独自のレコードを公開してください。_dmarcに、v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.comのようなTXTレコードを公開します。正規の送信元すべてがアライメントの一致した状態で成功するまで1~2週間、集計レポートを確認し、p=quarantine、最終的にp=rejectへと段階的に引き上げます。両方は使えません。1つのホスト名はCNAMEにするかTXTレコードを持つかのどちらかで、両立はできないためです(RFC 1034)。つまり、どちらかの方法を選びます。いずれの場合も、_dmarcレコードは組織ドメイン全体で1つだけにしてください。
正しく設定できたか確認する
Purelymailの「Check DNS records」の緑のチェックだけで判断せず、実際のメールで確認してください。PurelymailのアドレスからGmailアカウント宛てにテストメールを送り、開いて⋮ → Show originalを選びます。SPF: PASS(yourdomain.comとアライメントが一致)、DKIM: PASS(d=yourdomain.com)、DMARC: PASSと表示されていれば成功です。SPFのアライメントが一致するのは、Purelymailでは自社ドメインがエンベロープ送信者になるためです。レコードそのものはターミナルからもスポットチェックできます。dig TXT _spf.purelymail.comでは3つのip4アドレスが表示され、dig CNAME purelymail1._domainkey.yourdomain.comではkey1.dkimroot.purelymail.comが指定されているはずです。dig TXT _dmarc.yourdomain.comではDMARCポリシーが返ります(管理型を使った場合はCNAMEをたどります)。その後、Qualisendのドメイン診断でドメインをチェックし、SPFのルックアップが1回のままであること、3つのDKIM用CNAMEが解決されること、DMARCが存在することを確認します。管理型のCNAMEを選んだ場合、レポートはPurelymailに届くことを忘れないでください。自分で状況を把握したくなった時点で、ruaの宛先を自分にした独自のDMARCレコードに切り替え、集計レポートをDMARCレポート解析に取り込みます。
よくある注意点
- DNS設定
ここではDMARCはTXTではなくCNAMEで、両方を置くことはできません。自分宛てのruaレポートやp=noneからrejectへの段階的な引き上げが必要な場合は、Purelymailの_dmarcのCNAMEを追加せず、_dmarcのTXTレコードを公開してください。1つのホスト名はCNAMEにするかTXTレコードを持つかのどちらかで、両立はできません(RFC 1034)。混在は設定エラーとしてDNSホストに拒否されます。
- 適用範囲
管理型のDMARCはp=rejectで、すぐに適用されます。Purelymailに限らず、認証していない送信元(ニュースレターツール、CRM、フォームプラグイン、またはトランザクション用リレー)からの正規のメールも拒否されます。先にすべての送信元を認証するか、段階的に引き上げる間は独自のp=noneレコードを使ってください。
- DNS設定
管理型のDMARCのレポートはdmarc@purelymail.comに届き、集計レポート(rua)は送られてきません。誰が自社ドメインとして送信しているかを把握できません。レポートが必要な場合は、rua=を指定した独自のDMARCレコードを公開してください。
- DNS設定
DKIMの3つのCNAMEはすべて必要です。Purelymailは各メールをローテーションする3つの鍵のいずれかで署名するため、purelymail1._domainkeyだけを公開すると、鍵2と鍵3で署名されたメールがDKIMに失敗します。purelymail1/2/3._domainkeyのすべてを追加してください。
- 認証失敗の原因
以前のサービスのMXレコードとSPFレコードを削除してください。残ったMXレコードがあると受信メールが複数のホストに分かれ、2つ目のSPFのTXTレコードはPermErrorになります。MXレコードはmailserver.purelymail.com(優先度50)の1つだけ、SPFのTXTレコードも1つだけにしてください。
- DNS設定
Cloudflareのプロキシを使うとCNAMEが機能しません。DKIMの3つのCNAMEと、使う場合はDMARCのCNAMEを「DNS only」(グレーのクラウド)に設定してください。オレンジのクラウドでプロキシが有効なCNAMEは、Purelymailのdkimroot/dmarcrootのホストに解決されず、検証に失敗します。
- DNS設定
所有権確認の値は正確にコピーしてください。purelymail_ownership_proofのTXTレコードが解決されるまで、Purelymailはドメインを追加しません。値が途中で切れていたり編集されていたりすると、「Check DNS records」の手順が何も表示されないまま失敗します。
- DNS設定
ホスト欄の二重化:多くのレジストラはドメインを自動で追加するため、purelymail1._domainkey.yourdomain.comと入力するとpurelymail1._domainkey.yourdomain.com.yourdomain.comになります。管理画面がドメインを追加する場合は、ラベルのみ(purelymail1._domainkey、_dmarc、@)を入力してください。
SPFレコードを作成
以下ではPurelymailがあらかじめ選択されています。他に利用している送信プラットフォームを追加し、1つにまとめたレコードを公開してください。
このドメイン自身のサーバー
ドメインが(上記のサービスを経由せず)直接メールを送信する場合は、ドメイン自体を許可します。
その他の送信元・IP
リストにないもの(別のサービスのSPFホストや特定のIPアドレス)を追加します。
接頭辞のinclude:は自動で付加されます。サービスのドキュメントに記載されているホスト名を入力してください。
その他すべての送信元へのポリシー
上記に記載されていないサーバーからのメールを、受信側がどう処理すべきかを指定します(allメカニズム)。
- ルートドメインにTXTレコードとして公開します。ホストは@(ドメインそのもの)、値は上記の文字列全体です。
- SPFレコードは1つのドメインにつき1つだけにします。すべての送信元をこの1行にまとめてください。v=spf1で始まるTXTレコードが2つあると、両方とも無効になります。
- DNSルックアップは10回以内に収めてください。include:、a、mxはそれぞれ1回とカウントされ、includeは内部でさらにルックアップを発生させることがあります。ip4:とip6:はカウントされません。
送信ドメイン認証の設定が済んだら、次は検証済みのクリーンなリストへの配信です。
リストを検証PurelymailのSPFに関するよくある質問
関連記事
ワークスペース・メールボックスの他のサービス
- Rackspace Email
- Titan
- Yandex 360
- Zoho Mail
- Apple iCloud+ Custom Email Domain
- Fastmail
- Google Workspace
- mailbox.org
公開したら、ドメイン診断ですべてのレコードが正しく解決されることを確認し、DMARCレポート解析で自社ドメインを名乗って送信している送信元を把握します。作成ツールではすべての送信元を確認できます。ただし、認証は到達率対策の半分にすぎません。送信IPやドメインがブラックリストに掲載されていると、SPFの設定がどれほど適切でも迷惑メールに振り分けられます。そのため、ブラックリスト監視で掲載状況を確認しておくことをおすすめします。
認証の次は、リストをクリーンに保つ
SPF、DKIM、DMARCに成功すれば受信トレイに届き、クリーンなリストならその状態を維持できます。お手持ちのリストも検証してクリーニングできます。100クレジット無料、クレジットカード登録不要で始められます。