Post

How to Set Up Your Own Email Address With Proton Mail and Cloudflare

A step-by-step guide to getting an email address on your own domain with Proton Mail, using Cloudflare for DNS, with every record explained in plain words.

How to Set Up Your Own Email Address With Proton Mail and Cloudflare

Most email addresses are tied to the provider you signed up with. If you ever want to switch, you have to tell everyone your new address and update it on every account you own.

Having email on your own domain fixes that. The address belongs to you, not the provider. You can move to a different email service later and nobody even notices. I went with Proton Mail because of its focus on privacy, and I use Cloudflare to manage my domain’s DNS.

This guide walks through the whole setup with screenshots. The only slightly technical part is adding a few DNS records, and I’ll explain what each one actually does so you’re not just copying and pasting blindly.

What you need

  • A domain name you own, like yourname.com
  • A paid Proton plan. Custom domains don’t work on the free plan.
  • Access to your domain’s DNS settings. I’m using Cloudflare here, but the steps are almost the same anywhere.

Set aside about 30 minutes, plus some waiting time for DNS to update.

Step 1: Sign up for Proton Mail

Go to Proton Mail, pick a paid plan, and finish signing up.

Proton Mail sign up page

Step 2: Add your domain in Proton

Log in and open Settings with the gear icon in the top-right corner.

Proton Mail settings gear icon

Go to Domain names.

Proton Mail domain names section

Click Add domain, type your domain, and confirm with your Proton password when it asks.

Adding a domain in Proton Mail

Step 3: Prove the domain is yours

Proton needs to know you actually own this domain, otherwise anyone could claim it. It does that by giving you a small piece of text and asking you to add it to your DNS. Only the owner can do that.

Proton shows you a TXT record that starts with protonmail-verification=.

Proton Mail showing the verification TXT record

Now log in to Cloudflare (or wherever your domain’s DNS is).

Cloudflare login

Open your domain and go to the DNS section.

Cloudflare DNS section

Add a new TXT record with @ as the name and Proton’s text as the value. Copy it exactly.

Adding the verification TXT record in Cloudflare

Verification TXT record added in Cloudflare

Go back to Proton and click Verify. It can take a few minutes for Proton to see the new record, so if it fails the first time, wait a bit and try again.

Domain verified in Proton Mail

Step 4: Create your address

Once the domain is verified, open it in Proton’s domain settings and click Add address. This is where you choose the actual address, like [email protected].

Adding an address in Proton Mail

You can’t receive mail on it yet. That’s what the next records are for.

Step 5: Add the email records

There are four kinds of records to add. I found it easier to understand them by thinking of email like a postal service:

RecordWhat it doesPostal version
MXTells the world where to deliver your mailYour post office address
SPFLists who’s allowed to send mail as youA list of people allowed to sign your letters
DKIMSigns every email you sendA wax seal that proves the letter wasn’t opened or faked
DMARCSays what to do with mail that fails these checks“If the seal is broken, don’t deliver it”

Without MX you can’t receive anything. Without the other three, your emails are much more likely to land in people’s spam folders.

If you use Cloudflare, every record below must be set to DNS only (grey cloud), not Proxied (orange cloud). Email doesn’t work through Cloudflare’s proxy.

MX records: where your mail goes

Add two MX records. The “priority” number decides which one is tried first. Lower means first.

TypeNameMail serverPriority
MX@mail.protonmail.ch10
MX@mailsec.protonmail.ch20

MX record with priority 10

MX record with priority 20

Both MX records added in Cloudflare

If your domain already had other MX records from an older email setup, delete them. Otherwise some of your mail might still go to the old place.

SPF record: who can send as you

Add one TXT record:

TypeNameValue
TXT@v=spf1 include:_spf.protonmail.ch ~all

This basically says “Proton’s servers are allowed to send email for this domain.”

SPF record in Cloudflare

SPF record added

A domain should only have one SPF record. If there’s already one, edit it instead of adding a second.

DKIM records: the signature

Proton gives you three CNAME records for DKIM. You’ll find them in Proton under your domain’s settings, in the DKIM tab.

Proton Mail DKIM tab showing three CNAME records

The names are always the same:

  • protonmail._domainkey
  • protonmail2._domainkey
  • protonmail3._domainkey

The targets are long and unique to your domain, so copy them from Proton rather than typing them. In Cloudflare, add each one as a CNAME record and make sure the proxy is turned off.

Adding a DKIM CNAME record in Cloudflare with the proxy turned off

DKIM records added in Cloudflare

If Cloudflare complains about the dot at the end of the target, you can remove it. Proton mentions this too.

DMARC record: what to do with fakes

Add one more TXT record:

TypeNameValue
TXT_dmarcv=DMARC1; p=quarantine

p=quarantine tells other mail servers: “if an email claims to be from my domain but fails the checks, put it in spam.” This stops people from easily sending fake emails pretending to be you.

DMARC record in Cloudflare

Step 6: Wait a little

DNS changes don’t show up everywhere instantly. Usually it’s a few minutes, sometimes a few hours. Make a cup of tea.

Step 7: Check everything is green

Go back to your domain in Proton. It checks the records automatically. When everything is set up correctly, you’ll see green ticks next to each one.

Proton Mail showing all DNS records verified

If one stays red, the most common causes are a typo in the value, a record that’s still proxied in Cloudflare, or an old record you forgot to delete.

Step 8: Send a test

Last step:

  1. Send an email from your new address to another account, like a Gmail.
  2. Reply to it, so you also test receiving.
  3. Check it didn’t land in spam.

If both directions work, you’re done. You now have an email address that’s actually yours.

Was it worth it?

For me, yes. The setup takes one evening, and after that you never think about it again. The biggest win is that the address stays the same even if I change providers one day. I’d just point the MX records somewhere else.

If you have any trouble with a step, leave a comment and I’ll try to help.

This post is licensed under CC BY 4.0 by the author.