Cloudflare Email Routing Not Working? 9 Fixes That Actually Help
Cloudflare Email Routing is free and usually just works — which makes it extra frustrating when it silently doesn’t. These are the nine causes that account for almost every broken setup, roughly in order of how often they happen.
1. Your MX records point somewhere else
Email Routing only works when your domain’s MX records point to Cloudflare’s mail servers (route1/route2/route3.mx.cloudflare.net). If you previously had hosting email, Google Workspace, or Zoho on this domain, the old MX records are probably still there — and mail follows MX, not your intentions. Open the DNS tab, delete every non-Cloudflare MX record, and let Cloudflare re-add its own. A domain can only have one mail destination; you can’t split MX between two providers.
2. The destination address was never verified
Cloudflare refuses to forward a single message until the destination address clicks a verification link. If the destination shows anything other than “Verified” in the Email Routing dashboard, that’s your whole problem. Check the destination inbox’s spam folder for the verification email, and resend it from the dashboard if needed.
3. Email Routing itself is disabled
The feature has a master switch. If you ever clicked “Disable Email Routing” (or started the setup and never finished the DNS step), rules exist but nothing runs. The overview page tells you plainly whether routing is enabled — believe it over your memory.
4. Catch-all is off and the address doesn’t match exactly
Custom addresses match exactly. Mail to Info@yourdomain.com matches a rule for info@, but mail to infos@ or info.sales@ matches nothing — and with catch-all disabled, unmatched mail is rejected at the door. Either add the exact addresses people actually write to, or enable catch-all and route it somewhere you’ll see.
5. The ‘+’ address trap
Forwarding to a Gmail address with a plus tag (you+shop@gmail.com) looks clever and fails in practice: Gmail rejects forwarding targets that contain “+”, and other systems handle them inconsistently. Use the plain address as the destination and filter by the recipient header instead.
6. Gmail accepted it — into spam
“Not arriving” often means “arriving in spam.” Forwarded mail keeps the original sender’s domain, and Gmail judges it accordingly. Search Gmail for in:spam to:you@yourdomain.com before assuming delivery failed. If your own domain’s outgoing mail is the thing landing in spam, that’s an SPF/DKIM/DMARC problem — we wrote up the 15-minute fix for custom-domain spam separately.
7. A conflicting SPF or missing DNS record
Cloudflare adds an SPF include for its routing when you enable the feature. If you later replaced that TXT record with your own SPF (or have two SPF records — which is invalid), some receiving servers will start refusing your forwarded mail. You want exactly one SPF record that includes every service that legitimately sends for the domain.
8. A forwarding loop
Routing info@yourdomain.com to a mailbox that forwards back to the same domain creates a loop, and mail servers drop looped messages silently. The classic version: catch-all forwards to a Gmail account which itself auto-forwards to an address on the routed domain. Draw the path once on paper; it should never revisit the same domain.
9. You’re testing from the destination mailbox
Gmail deduplicates: if you send a test from the same Gmail account that is also the forwarding destination, Gmail often shows only your sent copy and hides the forwarded one. Test from a different account, and give the very first message a minute — routing on a fresh setup can lag briefly while DNS settles.
Still fighting it?
Full disclosure: we build All Your Inboxes, which exists partly because of this checklist. If your domain is on Cloudflare, it creates a working address (info@, support@, anything) in about 10 seconds — no MX editing, no destination verification dance — and each message lands as a notification in the Gmail you already check. On the Starter plan you can hit Reply and the answer goes out from your own domain; see pricing and the Gmail forwarding guide if you’d rather keep wiring it yourself. Either way, the nine fixes above solve the overwhelming majority of broken Cloudflare routing setups.
All your email. One place.
Connect any inbox. Send from the right address automatically. Free plan forever, paid from $6.99/mo, and it never touches how your mailboxes are set up.
Try it free