Proton MailのSPF・DKIM・DMARC設定。
Proton Mailでは、アカウント設定のDomain namesセクションでカスタムドメインを認証します。5つのDNSタブ(Verify、MX、SPF、DKIM、DMARC)を順に進める形式で、各タブにはDNSを監視して緑のチェックマークで結果を示すチェックツールが付いています。大量送信向けのメール配信サービス(ESP)とは異なり、Protonは実際のメールボックスサービスです。そのため、ここでいう「自社ドメインとして送信する」とは、you@yourdomain.comから送る日常のメールを指します。SPFは実際に共有されるinclude(include:_spf.protonmail.ch)で、ルートドメインにある1つのSPFレコードにまとめます。DKIMは3つのCNAMEレコードです。2048ビットの鍵の公開と自動ローテーションをProtonに任せたまま、メールに自社ドメインの署名を付けられます。DMARCはポリシーレコードで、Protonは表示するだけでDNSには書き込みません。多くのガイドが触れていない前提条件が1つあります。カスタムドメインには有料のMailプラン(Mail Plus、Proton Unlimited、Proton Family/Duo、またはProton for Business)が必要で、無料アカウントでは追加できません。
Proton Mailを認証すべき理由
Protonのドメイン認証は、メールが受信トレイに届くかどうかを左右します。プライバシーはProtonの売りですが、プライバシーと認証は別物で、受信側は意図ではなくレコードで評価します。2024年2月以降、GmailとYahooは、すべての大量送信者(1日あたり約5,000通以上)に対し、SPF、DKIM、DMARCにアライメントが一致した状態で成功することを義務付けています。Microsoftも2025年に、Outlook.com/Hotmail宛ての大量メールに同じ要件の適用を始めました。少量の個人用や小規模ビジネス用のメールボックスでも、認証していないProtonのカスタムドメインには「via」の表示が付き、DMARCに失敗し、迷惑メールに振り分けられやすくなります。さらに、どのサーバーが自社ドメインとして送信できるかを何も公開していないため、ドメインがなりすましに無防備な状態になります。Protonには、これがさらに重要になる固有の理由もあります。Protonは送信メールのSMTP Return-Pathを所有・管理しており、利用者はカスタマイズできません。そのため、SPFのアライメントが自社ドメインと一致することは当てにできません。実際にDMARCの成功を支えるのは、Protonがd=yourdomain.comとして署名するDKIMです。SPF、DKIM、DMARCの3つすべてを設定すれば、メールは暗号技術によって自社のものと証明され、「via」の表示は消え、アライメントの一致したDKIMによってDMARCに成功し、築いたレピュテーションは自社ドメインに蓄積されます。
Proton MailにおけるSPFの実情
Proton Mailは、実際にincludeで認証するサービスです。ルートドメインにある1つのSPFのTXTレコードに、共有メカニズムのinclude:_spf.protonmail.chを1つ追加します。レコード全体はv=spf1 include:_spf.protonmail.ch ~allです。CNAMEで委任するESPとは異なり、これは本当に共有されるincludeで、Protonのカスタムドメインを使う顧客全員が同じものを使います。消費するDNSルックアップはRFC 7208の上限である10回のうち1回だけです。また、Protonは-allではなく~all(softfail)で終えることを明確に推奨しています。これにより、記載し忘れたサーバーからのメールは、完全に拒否されるのではなく疑わしいものとして扱われます。ただし、Proton特有の重要な注意点があります。Protonは送信メールのエンベロープ送信者(Return-Path)を管理しており、利用者側でこれを自社ドメインに向ける手段はありません(SendGridのようなem形式の送信用サブドメインも、カスタムReturn-Pathもありません)。そのため、DMARCでSPFのアライメントが自社ドメインと一致することを当てにしないでください。include:_spf.protonmail.chの役割は、Protonの送信IPを許可することと、SPFのチェック自体に成功することの2つと考えてください。Protonはすべてのメールにd=yourdomain.comで署名するため、アライメントを一致させる仕組みとしてはDKIMに頼ってください。SPFのTXTレコードはドメインに1つだけにします。Google Workspace、Microsoft 365、またはニュースレターツールからも送信する場合は、2つ目のSPFレコードを公開せず、すべてのメカニズムを1つのv=spf1の行にまとめてください。SPFレコードが2つあると、それ自体がPermErrorになります。また、送信用サブドメインにはそれぞれ専用のSPFレコードが必要です。yourdomain.comのレコードは、mail.yourdomain.comには適用されません。
設定手順
- 1
有料プランを確認してドメインを追加
カスタムドメインには有料のMailプラン(Mail Plus、Proton Unlimited、Proton Family/Duo、またはProton for Business)が必要で、無料アカウントでは追加できません。サインインしてSettings → All settings → Domain namesを開きます(Businessプランの場合はOrganization → Domain namesにあります)。Add domainをクリックしてyourdomain.comを入力すると、Verify / MX / SPF / DKIM / DMARCのタブがあるセットアップウィザードが開きます。
- 2
所有権確認のTXTレコードを追加
Verifyタブには、値がprotonmail-verification=<ドメインごとに固有のコード>のTXTレコードが表示されます。これをDNSホストでルートドメイン(ホストは@または空欄)にTXTレコードとして追加します。その後Protonの画面に戻って再チェックさせると、レコードが検出された時点でタブに緑のチェックマークが付きます。このレコードは残しておいてください。後で削除すると、ドメインの確認が取り消される場合があります。
- 3
MXレコードをProtonに向ける
MXタブの内容に従い、ルートドメイン(@)に2つのMXレコードを追加します。優先度10のmail.protonmail.chと、優先度20のmailsec.protonmail.chです。受信メールがProtonに届くよう、以前のサービスのMXレコードが残っていれば削除するか、Protonのレコードの優先度が最も小さい値になるようにしてください。MXは受信のためのもので認証には関係しませんが、Protonのウィザードが前提としており、整ったセットアップの一部です。
- 4
SPFレコードを追加(既存なら1つにまとめる)
SPFタブにはv=spf1 include:_spf.protonmail.ch ~allが表示されます。これをルートドメイン(@)にTXTレコードとして追加します。別の送信元用のv=spf1レコードがすでにある場合は、2つ目を作らず、include:_spf.protonmail.chを既存の1行にまとめ、末尾の~allは1つだけにしてください。
- 5
DKIMのCNAMEの値を3つ表示
DKIMタブを開きます(Businessプランの場合:Domain names → your domain → Review → DKIM)。セレクターprotonmail、protonmail2、protonmail3の3組のホストと値が表示されます。ターゲットの値にはドメインごとに固有の識別子が含まれるため、3つすべてを正確にコピーしてください。
- 6
DKIMのCNAMEを3つ公開
次の3つのCNAMEレコードを作成します。ホストprotonmail._domainkey → protonmail.domainkey.<hash>.domains.proton.ch、protonmail2._domainkey → protonmail2.domainkey.<hash>.domains.proton.ch、protonmail3._domainkey → protonmail3.domainkey.<hash>.domains.proton.chです。ターゲットはProtonに表示された値をそのまま使います。タイプはCNAMEのままにします(TXTにしないでください)。また、レジストラが値の末尾にドットを付けたり、ドメイン名を自動で追加したりする場合は、ターゲットが完全に一致するよう取り除いてください。
- 7
DMARCレコードを公開
DMARCタブの内容に従い、ホスト_dmarcにTXTレコードを追加します。値はv=DMARC1; p=none; rua=mailto:dmarc@yourdomain.comです。DKIMのアライメントが一致することを確認する間、配信に影響が出ないよう、p=none(監視のみ)から始めます。Proton自身は、ほとんどのドメインについて、その後p=quarantineへ引き上げることを推奨しています。_dmarcレコードはドメイン全体で1つだけにしてください。
- 8
アドレスを有効にしてデフォルトに設定
タブの確認が済んだら、Settings → Identity and addresses → Addressesで、そのドメインのアドレスが実際にあることを確認します。you@yourdomain.comを作成または有効にしてデフォルトに設定します。これにより、送信メールは元のproton.meやpm.meのアドレスではなく、カスタムドメインとして送信され、DKIM署名もそのドメインで行われます。
- 9
緑のチェックマークを確認し、実際のメールでテスト
Protonが対応するレコードを検出すると、各タブに緑のチェックマークが付きます(通常は数分、最大48時間)。ここで終わらせず、Gmailアカウント宛てにメールを送って開き、⋮ → Show originalを選び、DKIM: PASS(d=yourdomain.com)、DMARC: PASSを確認します。その後、ドメイン診断ですべてのレコードが解決されることを確認してください。
追加するレコード
正確な値はProton Mailのセットアップウィザードで生成されます。以下は、DNSホストに追加するレコードの形式を示したものです。
| タイプ | ホスト | 値 |
|---|---|---|
| TXT | @ | protonmail-verification=abcdef1234567890abcdef1234567890Verifyタブの所有権確認用の値です。例であり、実際のコードはドメインごとに固有です。公開したままにしてください。 |
| MX | @ | mail.protonmail.ch受信メールのプライマリサーバーで、優先度は10です。認証ではなく受信のためのものです。 |
| MX | @ | mailsec.protonmail.ch受信メールのバックアップサーバーで、優先度は20です。古いMXレコードは削除するか、Protonの優先度が最も小さい値になるようにしてください。 |
| TXT | @ | v=spf1 include:_spf.protonmail.ch ~allルートドメインのSPF:レコードは1つだけにします。すでにv=spf1の行がある場合は、このincludeをまとめてください。DNSルックアップを1回消費します。Protonは~allを推奨しています。 |
| CNAME | protonmail._domainkey | protonmail.domainkey.d3nc4x7wj5x2z.domains.proton.chDKIMセレクター1(自動ローテーション)。例です。正確なターゲットはProtonのDKIMタブからコピーしてください。d…のハッシュはドメインごとに固有です。 |
| CNAME | protonmail2._domainkey | protonmail2.domainkey.d3nc4x7wj5x2z.domains.proton.chDKIMセレクター2。Protonの鍵の自動ローテーションには3つすべてが必要です。 |
| CNAME | protonmail3._domainkey | protonmail3.domainkey.d3nc4x7wj5x2z.domains.proton.chDKIMセレクター3。例です。DKIMタブに表示された正確な値を使ってください。 |
| TXT | _dmarc | v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.com自分で追加するレコードで、1ドメインにつき1つです。p=noneから始めます。Protonはp=quarantineへの引き上げを推奨しています。 |
ルートドメインのSPF(v=spf1)のTXTレコードは1つだけにし、すべての送信元をこの1行にまとめてください。SPFレコードが2つあると、それ自体がエラーになります。
DNSルックアップの10回制限
SPFのDNSルックアップは10回までに厳格に制限されており、超えるとpermerrorを返して、どの受信側でも検証されなくなります。Proton Mailの設定がこの上限のうち何回を消費するかは、次のとおりです。
Proton Mailは10回のルックアップのうち1回を消費します。ip4:とip6:のメカニズムはルックアップを消費しません。
DKIM
DKIMは、Protonが他の多くのメールボックスサービスと明確に異なる部分で、到達率に最も大きく関わります。静的なTXTの鍵を1つ貼り付けるのではなく、protonmail._domainkey、protonmail2._domainkey、protonmail3._domainkeyの3つのセレクターにCNAMEレコードを公開し、それぞれprotonmail{,2,3}.domainkey.<hash>.domains.proton.chを指すようにします(<hash>はドメインごとに固有の識別子です)。これらはProtonに委任するCNAMEで、自分で保持する鍵ではありません。そのためProtonが秘密鍵を保持し、3つのセレクターを使って新しい2048ビットの鍵を自動でローテーションします(おおよそ6か月ごと)。DNSを再度編集する必要はありません。常に1つの有効な鍵がメールに署名し、残りはバックグラウンドで廃止・再生成されます。3つすべてが必須なのはこのためです。1つしか公開しないと、いずれローテーションによって、DNSに公開していない鍵でメールが署名され、DKIMが気づかないうちに失敗し始めます。3つの値はDKIMタブ(Domain names → your domain → Review → DKIM)で表示できます。表示どおりに公開し、タブに緑のチェックマークが付くのを待ちます。Protonが検出すると、すべての送信メールにd=yourdomain.comで署名を始めます。この署名は組織ドメインとアライメントが一致します。DMARCの成功を支えるのはこの署名です。ProtonではSPFのアライメントを当てにできないため、特に重要です。運用上の注意点を2つ挙げます。以前にprotonmail._domainkeyの手動TXTレコードを使う従来方式でDKIMを設定していた場合は、競合しないよう、CNAMEを追加する前にそのTXTを削除してください。また、Cloudflareでは各CNAMEを「DNS only」(グレーのクラウド)に設定してください。そうしないとProtonのホストに解決されません。
DMARC
DMARCは、自分で公開する別のポリシーレコードです。ProtonはDMARCタブに表示しますが、DNSに書き込むことはありません。_dmarc.yourdomain.comに、v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.comで始まるTXTレコードを追加します。p=noneは監視のみで、配信には何も影響せず、受信側に集計レポート(rua)のメール送信を求めます。これにより、Protonで送信したメールがDKIMに成功し、自社ドメインとアライメントが一致していることを確認できます。1~2週間レポートを確認し、正規の送信元がすべて認証されていることを確かめたら、ポリシーを引き上げます。Proton自身の案内では、ほとんどのドメインにはp=quarantineを推奨設定とし、最も強力ななりすまし対策が必要な重要度の高いドメインにはp=reject(Yahoo、PayPal、eBayが採用するレベル)まで進めるとしています。ただし、引き上げは慎重に進めてください。Protonは、quarantineやrejectによってメール転送やメーリングリストが機能しなくなる場合があると明確に警告しています。転送されたメールはSPFの成功を失い、DKIMの署名が損なわれずに残ることに完全に依存するためです。使用する送信元の数にかかわらず、_dmarcレコードは組織ドメイン全体で1つだけにします。サブドメインは親のポリシーを継承します(個別に上書きする場合は、そのサブドメイン専用の_dmarcレコードかsp=タグを使います)。ProtonはDKIMの署名をd=yourdomain.comで行ってアライメントを一致させるため、正しく設定されたProtonのドメインは、SPFのアライメントが一致しなくてもDKIMによってDMARCに成功します。DKIMのCNAMEを省略してはいけない理由はまさにここにあります。
正しく設定できたか確認する
タブの緑のチェックマークだけで判断しないでください。これはレコードが解決されることを示すだけで、メールの認証が最初から最後まで機能していることを示すものではありません。カスタムドメインのアドレスからGmailアカウント宛てに実際のテストメールを送り、開いて⋮ → Show originalを選びます。signed-by / d=yourdomain.comとともにDKIM: PASS、そしてDMARC: PASSと表示されていれば成功です。有効なセレクターは、ローテーションの状況に応じてprotonmail、protonmail2、protonmail3のいずれかです。SPFも通常はPASSと表示されますが、アライメントが自社ドメインとProtonのReturn-Pathのどちらに一致しているかを確認してください。アライメントが一致するのがDKIMだけの場合、Protonではそれが想定どおりで、DKIMによってDMARCに成功します。手軽なセカンドオピニオンとして、Mail-Testerのアドレスにメールを送る方法もあります。SPFとDKIMがともに緑で、10/10のスコアになるはずです。レコードそのものは、dig CNAME protonmail._domainkey.yourdomain.com、dig TXT yourdomain.com、dig TXT _dmarc.yourdomain.comでスポットチェックできます。最後に、Qualisendのドメイン診断でドメインをチェックし、SPFのinclude、3つのDKIM用CNAME、DMARCレコードが問題なく解決され、SPFがDNSルックアップの10回制限内に収まっていることを確認します。集計レポートが届き始めたら、DMARCレポート解析にレポートをドロップし、Protonがアライメントの一致した、成功している送信元として表示されることを確認してください。
よくある注意点
- 適用範囲
カスタムドメインには有料のProton Mailプラン(Mail Plus、Proton Unlimited、Proton Family/Duo、またはProton for Business)が必要です。無料アカウントではドメインの追加も認証もできません。Domain namesセクションで先に進めない場合は、まずここを確認してください。
- DNS設定
Protonでは、DMARCの成功をSPFに頼らないでください。Protonは送信時のReturn-Pathを管理しており、利用者がカスタマイズする手段はありません。そのため、SPFのアライメントは自社ドメインと一致しない場合があります。DMARCの成功を支えるのは、3つのCNAMEによりd=yourdomain.comとして署名するDKIMです。DKIMは決して省略しないでください。
- DNS設定
DKIMのCNAMEは3つすべてが必要です。Protonは2048ビットの鍵をprotonmail、protonmail2、protonmail3の各セレクターでローテーションします。1つしか公開しないと、いずれローテーションによって、DNSに公開していない鍵で送信メールが署名され、数週間後に気づかないうちにDKIMが失敗し始めます。
- DNS設定
DKIMのCNAMEの値は完全に一致させる必要があります。多くのレジストラは末尾にピリオドを付けたり、ドメインを自動で追加したりするため、ターゲットがProtonのチェックツールで拒否される形に変わることがあります。ウィザードの表示と完全に一致するよう取り除いてください。そうしないと緑のチェックマークは付きません。
- DNS設定
従来のTXT方式のDKIMから移行する場合は、CNAMEを追加する前に古いprotonmail._domainkeyのTXTレコードを削除してください。同じホストに古いTXTと新しいCNAMEがあると競合し、DKIMの検証に失敗します。
- DNS設定
Cloudflareでは、DKIMのCNAMEをすべてDNS only(グレーのクラウド)に設定してください。オレンジのクラウドでプロキシが有効なCNAMEは*.domains.proton.chに解決されず、検証に失敗します。ProtonをCloudflareで使う際によくある注意点です。
- 認証失敗の原因
SPFのTXTレコードは1つだけにします。Google Workspace、Microsoft 365、またはニュースレターツールからも送信する場合は、include:_spf.protonmail.chを1つのv=spf1の行にまとめてください。SPFレコードが2つあるとPermErrorになります。また、送信用サブドメインにはそれぞれ専用のSPF、DKIM、DMARCが必要です。
SPFレコードを作成
以下ではProton Mailがあらかじめ選択されています。他に利用している送信プラットフォームを追加し、1つにまとめたレコードを公開してください。
このドメイン自身のサーバー
ドメインが(上記のサービスを経由せず)直接メールを送信する場合は、ドメイン自体を許可します。
その他の送信元・IP
リストにないもの(別のサービスのSPFホストや特定のIPアドレス)を追加します。
接頭辞のinclude:は自動で付加されます。サービスのドキュメントに記載されているホスト名を入力してください。
その他すべての送信元へのポリシー
上記に記載されていないサーバーからのメールを、受信側がどう処理すべきかを指定します(allメカニズム)。
- ルートドメインにTXTレコードとして公開します。ホストは@(ドメインそのもの)、値は上記の文字列全体です。
- SPFレコードは1つのドメインにつき1つだけにします。すべての送信元をこの1行にまとめてください。v=spf1で始まるTXTレコードが2つあると、両方とも無効になります。
- DNSルックアップは10回以内に収めてください。include:、a、mxはそれぞれ1回とカウントされ、includeは内部でさらにルックアップを発生させることがあります。ip4:とip6:はカウントされません。
送信ドメイン認証の設定が済んだら、次は検証済みのクリーンなリストへの配信です。
リストを検証Proton MailのSPFに関するよくある質問
関連記事
ワークスペース・メールボックスの他のサービス
- Purelymail
- Rackspace Email
- Titan
- Yandex 360
- Zoho Mail
- Apple iCloud+ Custom Email Domain
- Fastmail
- Google Workspace
公開したら、ドメイン診断ですべてのレコードが正しく解決されることを確認し、DMARCレポート解析で自社ドメインを名乗って送信している送信元を把握します。作成ツールではすべての送信元を確認できます。ただし、認証は到達率対策の半分にすぎません。送信IPやドメインがブラックリストに掲載されていると、SPFの設定がどれほど適切でも迷惑メールに振り分けられます。そのため、ブラックリスト監視で掲載状況を確認しておくことをおすすめします。
認証の次は、リストをクリーンに保つ
SPF、DKIM、DMARCに成功すれば受信トレイに届き、クリーンなリストならその状態を維持できます。お手持ちのリストも検証してクリーニングできます。100クレジット無料、クレジットカード登録不要で始められます。