Published Updated
Use Gmail With a Custom Domain: Free Cloudflare Routing
You can use Gmail with a custom domain without paying for Google Workspace. Move the domain’s DNS to Cloudflare and turn on Cloudflare Email Routing: it forwards mail for the addresses you choose, or for every address through a catch-all rule, to your Gmail inbox at no charge. The domain itself still costs money: about $10 to $11 a year for a .com at an at-cost registrar such as Cloudflare (as of September 2026), and often more elsewhere. Sending as your domain from free Gmail is ending: Google will remove “Send as” for third-party addresses in January 2027.
Menu paths and figures below were checked against Google’s and Cloudflare’s documentation on September 25, 2026. If you give every site its own address this way, CatchNone can read that Gmail inbox on iPhone, iPad, and Mac and show you which address each message reached.
How to use Gmail with a custom domain, in short
- Put your domain on Cloudflare DNS.
- In Cloudflare, go to Compute → Email Service → Email Routing and select Onboard Domain.
- Under Destination Addresses, add your Gmail address and select Verify email address in Cloudflare’s email.
- Under Routing Rules, add a rule per address or turn on the Catch-all rule, with Send to an email and your Gmail address.
- Send a test from another account and check Gmail, including Spam.
- To send as your domain, use Send mail as while it lasts, then a relay, Workspace, or a mail host.
What’s free when you use Gmail with a custom domain
| Part | Cost, as of September 2026 | Notes |
|---|---|---|
| The domain | About $10 to $11 a year for a .com at a registrar that sells at cost |
Cloudflare Registrar charges no more than the registry and ICANN fees. Verisign’s wholesale .com price rises from $10.26 to $10.97 on November 1, 2026 (Domain Name Wire). |
| Cloudflare DNS and Email Routing | Free | Inbound mail is “Unlimited” on the Workers Free plan (pricing). Cloudflare has to run your domain’s DNS. |
| Gmail | Free | Up to 15 GB, shared with Google Drive and Google Photos. |
| Sending as your domain from Gmail | Free through “Send mail as” until January 2027, if Gmail still accepts a new address | It can fail DMARC for your domain. After that: Workspace, a relay, or another mail host (see Sending as your domain, below). |
Why older guides no longer work
Many guides pull a domain’s mail into Gmail with “Check mail from other accounts” (POP). Google is retiring it: “After the first quarter of 2026, this feature no longer supports new users. Existing users can still use the feature until January 2027.”
Plain forwarding keeps working. Google’s FAQ on the changes confirms another provider can still “auto-forward messages to your Gmail address,” and that is what Cloudflare Email Routing does.
Can a regular Gmail account have a catch-all or wildcard address?
No. A personal @gmail.com account has no catch-all (sometimes called a wildcard address). It offers only plus addresses and dot variants: mail to janedoe+school@gmail.com or jane.doe@gmail.com reaches janedoe@gmail.com, and anyone can strip the tag or the dots to find your real address. A true catch-all, where any name before the @ works, needs a domain you own and a service in front of Gmail that accepts every address. The steps below set that up with Cloudflare.
Step 1: Move your domain’s DNS to Cloudflare
Email Routing works only on domains that use Cloudflare DNS. A domain bought through Cloudflare Registrar already does, so skip to Step 2. Otherwise, in the Cloudflare dashboard, following Cloudflare’s full-setup guide (as of September 2026):
- Go to Domains and select Onboard a domain.
- Enter your domain, such as
example.com, select Continue, and choose the Free plan. - Review the DNS records Cloudflare found. Its quick scan can miss some, so compare them with your current DNS provider, especially the records for your website.
- If DNSSEC is on at your registrar, turn it off before changing nameservers. You can turn it on again through Cloudflare later.
- At your registrar, replace the nameservers with the two that Cloudflare assigned to you, copied exactly.
- Allow up to 24 hours for the change.
One catch: Email Routing needs Cloudflare’s MX records, and Cloudflare says you “cannot use Email Routing with external mail servers.” If the domain already receives mail at another host, routing replaces that host’s MX records, so new mail stops reaching those mailboxes.
If you’d rather keep your DNS where it is, your registrar’s email forwarding or a forwarding service such as ImprovMX can pass mail to Gmail in a similar way; how to set up a catch-all on any host covers them.
Step 2: Turn on Email Routing and verify your Gmail address
Cloudflare’s setup steps, as of September 2026:
- In the dashboard, go to Compute → Email Service → Email Routing.
- Select Onboard Domain, choose your domain, review the MX, SPF, and DKIM records Cloudflare will add, and select Done.
- Go to Destination Addresses and enter your Gmail address.
- Open the email Cloudflare sends to Gmail and select Verify email address.
Until the address is verified, every rule that points to it stays disabled. The records usually work within 5 to 15 minutes on Cloudflare DNS, though propagation can take up to 24 hours.
Cloudflare adds MX records for its mail servers, the SPF record v=spf1 include:_spf.mx.cloudflare.net ~all, and a DKIM key at cf2024-1._domainkey. A domain may have only one SPF record, so if you already have one, merge them and stay within SPF’s limit of 10 DNS lookups (domain settings). Let the dashboard add the MX records rather than copying hostnames from another guide.
Step 3: Create addresses, a catch-all, and Drop rules
All of these live under Compute → Email Service → Email Routing, where you select your domain and open the Routing Rules tab (Cloudflare’s rules guide).
One address at a time
- Select Create routing rule.
- In Email pattern, type the part before the @, such as
shop, and pick your domain. - Set Action to Send to an email, pick your Gmail address under Destination, and save.
Don’t create two rules with the same pattern: only the first one in the list handles mail.
The catch-all rule
- On Routing Rules, enable Catch-all rule so it shows as Active.
- Set Action to Send to an email and choose your Gmail address.
- Select Save.
Every address at your domain now reaches Gmail, including ones you make up on the spot, like airline@example.com, and typos. For the trade-offs, see what a catch-all email address is.
Stopping one address with a Drop rule
When an address starts attracting spam, create a routing rule for that exact address and set Action to Drop. Cloudflare says Drop “deletes emails matching the rule without routing them.” Its docs don’t state outright that a specific rule beats the catch-all, so test it: send to that address from another account and check that Email Routing’s Activity log shows Dropped.
To pause a rule without deleting it, toggle it to Disabled. With the catch-all on, mail to that address may still arrive through the catch-all, so use Drop to stop it.
Plus addressing and dots
With a catch-all on, shop+news@example.com reaches Gmail either way. Turn on subaddressing under Email Routing → Settings if you want it to follow the rule for shop@example.com, including a Drop rule: without subaddressing, dropping shop@ doesn’t stop shop+news@. Unlike Gmail, Cloudflare treats a dot as a normal character, so j.smith and jsmith are different addresses. Non-ASCII characters before the @ aren’t supported.
Test it
- From a different account, not the Gmail address you verified, send a message to an address you routed, such as
shop@example.com. Cloudflare warns that some providers discard messages that seem to come from the account they’re delivered to. - Check your Gmail inbox and Spam.
- If it isn’t there, open the Activity log and see whether it shows Forwarded, Dropped, Rejected, or Delivery failed.
Sending as your domain, before and after January 2027
Email Routing only receives. Cloudflare says it “does not support sending or replying from your Cloudflare domain,” so a reply from Gmail goes out from your @gmail.com address.
Before you start: from January 2027, Google says you “will no longer be able to send mail from third-party email accounts in Gmail.” For businesses that rely on “Send as,” its advice is a desktop mail client or “Google Workspace for a custom domain,” so plan for this to stop working for a Cloudflare-routed domain. Google also says it will restrict new setups before then, so the dialog may already refuse a new address.
Until January 2027: Send mail as
Google’s Send mail as steps, in Gmail on a computer:
- Open Settings → See all settings → Accounts and import (or Accounts).
- In Send mail as, click Add another email address.
- Enter your name and
you@example.com, then click Next Step. - Enter the SMTP details. Google’s SMTP settings are
smtp.gmail.comwith port587and TLS, or port465and SSL. Use your full Gmail address as the username and a Gmail app password as the password, then click Add Account. - Gmail sends a confirmation link to
you@example.com, which routing delivers to your Gmail. Click the link in it. If it’s missing, check Spam forsend-as-noreply@google.com.
Google’s help adds that replies go to your Gmail address by default unless you set Edit info → Specify a different “reply to” address.
DMARC warning: mail sent this way is authenticated as Gmail, not as your domain, so it can fail DMARC for your domain. Under RFC 9989, the current DMARC standard, a message passes only when SPF or DKIM passes for a domain aligned with the From address. If your domain publishes
p=quarantineorp=reject, receivers may junk or refuse your mail.While you send this way, keep
p=noneand collect aggregate reports, which RFC 9989 calls Monitoring Mode, or switch to a relay that signs DKIM for your domain. Gmail recipients may also see “via” next to your name; Google’s help on the “via” label says the fix is a DKIM signature “associated with your domain.”
To see your current policy, look for a TXT record named _dmarc under DNS → Records in Cloudflare. Cloudflare’s free DMARC Management (Email → DMARC Management) can collect the reports. To check a message, send it to another account, open it in Gmail, choose More → Show original, and read the SPF, DKIM, and DMARC lines.
Sending through a relay that signs for your domain
A relay that signs DKIM for your domain lets DMARC pass, and it still works from a mail client after Send as ends. As of September 2026:
- Sign up with a relay such as SMTP2GO. It refuses Gmail addresses at signup, so use
you@example.com, which routing delivers to your Gmail. - Add your domain in the relay and copy the DNS records it shows into Cloudflare under DNS → Records. Set any CNAME to DNS only, and merge any SPF include into your single
v=spf1record. - Until January 2027, enter the relay’s SMTP server, port, username, and password in step 4 of Send mail as instead of
smtp.gmail.com. - After that, read Gmail over IMAP in a desktop mail client and give
you@example.comthe relay as its outgoing server. In Thunderbird: ☰ → Account Settings → your Gmail account → Manage Identities… → Add (Mozilla’s guide). - Send a test to another account and check Show original for DKIM and DMARC passing for your domain.
After January 2027: your options
| Option | Cost, as of September 2026 | Trade-off |
|---|---|---|
| Google Workspace | From $7 per user per month (see below) | A real Gmail mailbox on your domain. Its MX records replace Email Routing. |
| A desktop mail client that reads Gmail over IMAP and sends through an SMTP relay | Some relays have free tiers; SMTP2GO’s covers up to 1,000 emails a month and 200 a day | You send from the client, not Gmail’s website. A relay that signs DKIM for your domain lets DMARC pass. |
| Cloudflare Email Sending (beta) as that relay | Workers Paid, from $5 a month, with 3,000 emails included, then $0.35 per 1,000 | Cloudflare says it “is intended only for transactional emails.” SMTP is smtp.mx.cloudflare.net, port 465, and the password is a Cloudflare API token. Messages are limited to 5 MiB including attachments. It adds its own DMARC record, so check the policy. |
| A mail host with custom-domain support | From free: Zoho Mail’s Forever Free plan covers one domain and up to 5 users, without IMAP or POP, where offered; iCloud+ and Fastmail are paid | Send and receive in one place, but the MX records move to that host. See email providers for a custom domain. |
Cloudflare Email Routing not working or going to Spam: fixes
Mail that never arrives
Start with Email Routing’s Activity log. It shows whether each message was Forwarded, Dropped, Rejected, or Delivery failed, among other outcomes, with its SPF, DKIM, and DMARC results, for up to the last 30 days. If the log doesn’t explain it, check these in order:
- The destination isn’t verified. Its rules stay disabled.
- You tested from the same Gmail account. Test from another account.
- Cloudflare rejected it. Its postmaster page says incoming mail is rejected if it fails the sender’s DMARC policy, passes neither SPF nor DKIM, or comes from a sender on a block list (a
554error). Only the sender can fix that. - It’s over 25 MiB. Cloudflare rejects anything larger.
- The DNS is wrong. Two SPF records, or MX records left from an old host, break routing. Cloudflare’s troubleshooting guide suggests deleting every
v=spf1record and re-onboarding if you’re unsure which to keep.
Senders don’t always hear about failures, because Email Routing doesn’t forward non-delivery reports.
Mail that lands in Gmail’s Spam
Cloudflare rewrites the envelope sender so SPF passes at Gmail, adds DKIM signatures, and supports ARC. Gmail still runs its own checks and can file good mail as spam. Google’s fixes for mail wrongly marked as spam are Not spam, adding the sender to Google Contacts, or a filter. To cover every routed address, in Gmail on a computer:
- In the search bar, click Show search options.
- In To, enter your domain, such as
@example.com, and click Search to check that routed mail shows up. - Click Create filter, check Never send it to Spam, and click Create filter again.
Google’s own example filters by sender, so test this domain-wide version; it usually works, but it can miss mail that doesn’t name your address, such as Bcc’d messages. Google’s forwarding advice also warns that once forwarded messages get marked as spam, later ones are more likely to be: another reason to add a Drop rule for addresses that only get spam.
Limits of the free setup
As of September 2026, from Cloudflare’s limits page and Google’s help:
| Limit | Value |
|---|---|
| Routing rules per domain | 200 (one catch-all rule covers every address) |
| Destination addresses per Cloudflare account | 200, shared across domains |
| Destinations per rule | 1 (a Worker can forward to several) |
| Inbound message size | 25 MiB; larger messages are rejected |
| Domains and subdomains per zone | 30, including the domain itself |
| Gmail sending | You may hit a limit above 500 recipients in one message or 500 emails a day |
| Send mail as addresses | Up to 99, until January 2027 |
The costs that aren’t in dollars: Cloudflare runs all of your domain’s DNS, and your mail passes through Cloudflare before Google stores and filters it.
When Google Workspace is worth paying for
Workspace is worth paying for if you want to keep sending as your domain from Gmail itself after Send as ends, sign in to Gmail with your domain, or give several people mailboxes. As of September 2026, Business Starter costs $7 per user per month on an annual plan or $8.40 on the flexible plan, with a 14-day trial, 30 GB of pooled storage per user, up to 30 aliases per user, and a catch-all through default routing. If you only need to receive, and replying from your @gmail.com address is fine, the free setup is enough.
Reading each catch-all address separately
Everything arrives in one Gmail inbox. To see one address’s mail, search to:shop@example.com, or create a filter on that address with Apply the label. Apps that read Gmail over IMAP need Sign in with Google or an app password; our Gmail app password and IMAP settings guide covers creating one and why the option can be missing.
Reading routed mail by address in CatchNone
CatchNone gives every address on your catch-all domain its own place. It reads the Gmail inbox your routing fills, directly from your device and read-only, and shows each message under the address it reached, so a leaked or sold address shows up. Mail to an address you never created appears with a gray badge, and creating an alias for that address later names it. The Free plan includes up to 10 aliases on your own domain, and Lite and Premium have no limit. CatchNone is available for iPhone, iPad, and Mac.
In its Advanced setup (Bring your own domain), you connect Gmail by hand over IMAP (imap.gmail.com, port 993, TLS) with a Gmail app password, because it has no Sign in with Google. The app only reads, but the app password itself gives full access to your Gmail. Google doesn’t offer app passwords on every account and revokes them when you change your Google Account password; without one, route the catch-all to an iCloud Mail or Fastmail address, which offer app passwords, or move the domain’s mail there, as in iCloud+ with a custom domain.
CatchNone is receive-only by design, so you still reply from Gmail. It reads only the inbox, so mail that Gmail files in Spam or a filter archives won’t appear (the Never send it to Spam filter above helps). Each check, when you open or refresh the app, covers the newest 100 inbox messages from the last 30 days, and it imports only messages whose To, Cc, or Bcc names an address on your domain. Marking an alias as not in use is only a label, so stop an address with a Drop rule in Cloudflare.
If you’d rather skip the domain, DNS, and routing altogether, Premium gives each signup its own @catchnone.com address, and that mail never reaches your Gmail inbox. Switch one off and senders get a bounce.
FAQ
What is Cloudflare Email Routing, and is it part of Google?
It’s Cloudflare’s free forwarding service, not Google’s. Cloudflare’s MX records make it your domain’s mail server: it accepts each message, checks SPF, DKIM, and DMARC, rewrites the envelope sender, and passes the message on to a destination you verified, Gmail or any other inbox.
Is Cloudflare Email Routing safe and reliable?
You trust both Cloudflare and Google with your mail. The bigger risk is control: anyone who gets into your Cloudflare account can redirect mail for every address on the domain, and anyone who buys the domain after it lapses receives that mail, password resets included. Turn on two-factor authentication at Cloudflare, keep the domain on auto-renew, and see what happens when an email domain expires. Its reliability limits are documented: strict DMARC policies can make forwarded mail fail, mail over 25 MiB is rejected, and senders don’t always hear about failures, so check the Activity log for any message that didn’t arrive.
Can I sign in to Gmail with my custom domain?
Not with free Gmail: you sign in with your @gmail.com address, and the domain only forwards to it. A Gmail inbox you sign in to as you@example.com needs Google Workspace. You can also create a free Google Account that uses your own address instead of a Gmail address, for services such as YouTube or Google Drive, but it has no Gmail inbox.
Does Email Routing work on a subdomain?
Yes. In Email Routing, select your main domain, open Settings, and enter the subdomain under Subdomains. Cloudflare adds its records, and you create rules for it the same way.
How do I turn it off or move to another provider?
Disable Email Routing, under Email Routing → Settings, removes the MX, SPF, and DKIM records it added. To move without a gap, first Unlock those records there, add the new provider’s records, and disable routing once the new setup works.