[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$f34ne6sep5jfnw":3},{"_id":4,"slug":5,"title":6,"subtitle":7,"kind":8,"cards":9,"tags":58,"categories":60,"source":62,"lang":65,"author":66,"audioState":69,"stats":70,"publishedAt":73,"renderer":74},"6abb6ec4ca21c797c7e9cbc0","free-email-forwarding-for-your-personal-domain-with-cloudfla-826ff625","Free Email Forwarding for Your Personal Domain With Cloudflare Email Routing","Forward any address at your domain, such as hello@example.com, to an external inbox.","news",[10,13,18,23,28,33,38,43,48,53],{"headline":6,"body":11,"imageUrl":12,"sourceImageUrl":12},"Forward any address at your domain, such as hello@example.com, to an external inbox. For a public address that only has to receive mail, I would put it on Cloudflare Email Routing: the messages land in the inbox I already read, and forwarding to a verified destination costs nothing on any plan. 💸","https:\u002F\u002Fmedia2.dev.to\u002Fdynamic\u002Fimage\u002Fwidth=1200,height=627,fit=cover,gravity=auto,format=auto\u002Fhttps%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F64mh1ohn4kmvsim7bgde.png",{"headline":14,"body":15,"imageUrl":16,"images":17},"Prerequisites: the domain is on Cloudflare DNS (nameservers","Prerequisites: the domain is on Cloudflare DNS (nameservers delegated, DNS Setup = Full), and it has no MX records from another mail host. Email Routing owns the MX set. 1. Verify the destination address","\u002Fapi\u002Fmedia\u002Fposts\u002Ffree-email-forwarding-for-your-personal-domain-with-cloudfla-826ff625\u002F1.webp",{"local":16},{"headline":19,"body":20,"imageUrl":21,"images":22},"Compute > Email Service > Email Routing >","Compute > Email Service > Email Routing > Destination Addresses > Add address. Enter the external inbox (for example, you@gmail.com). Cloudflare emails a confirmation link, and you click it. The row must read Verified. Until it does, any rule that points to the address stays disabled. Destination addresses are account-wide: once verified, any zone in the account can target it. 2. Enable routing and add the DNS records","\u002Fapi\u002Fmedia\u002Fposts\u002Ffree-email-forwarding-for-your-personal-domain-with-cloudfla-826ff625\u002F2.webp",{"local":21},{"headline":24,"body":25,"imageUrl":26,"images":27},"Open the zone's Email Routing > Settings >","Open the zone's Email Routing > Settings > DNS records > Add missing records. Cloudflare writes these records and locks them: A locked record cannot be edited or deleted from the DNS page until you unlock it in the Email Routing settings.","\u002Fapi\u002Fmedia\u002Fposts\u002Ffree-email-forwarding-for-your-personal-domain-with-cloudfla-826ff625\u002F3.webp",{"local":26},{"headline":29,"body":30,"imageUrl":31,"images":32},"Keep one SPF TXT record per name. If","Keep one SPF TXT record per name. If the domain already has one, the merge is yours to do: Cloudflare's example combines both includes in a single record, v=spf1 include:_spf.mx.cloudflare.net include:_spf.google.com ~all. 3. Create the routing rule Email Routing > Routing rules > Create routing rule: Email pattern: hello @ example.com Destination: the verified address Save. The rule must show Active.","\u002Fapi\u002Fmedia\u002Fposts\u002Ffree-email-forwarding-for-your-personal-domain-with-cloudfla-826ff625\u002F4.webp",{"local":31},{"headline":34,"body":35,"imageUrl":36,"images":37},"The pattern takes any local part, not only","The pattern takes any local part, not only hello: sales, support or your own name work the same way, one rule per address.","\u002Fapi\u002Fmedia\u002Fposts\u002Ffree-email-forwarding-for-your-personal-domain-with-cloudfla-826ff625\u002F5.webp",{"local":36},{"headline":39,"body":40,"imageUrl":41,"images":42},"The catch-all in Routing rules defines what happens","The catch-all in Routing rules defines what happens to every other address at the domain. Enabled with Send to an email, it forwards all of them, typos such as ifno@example.com included. Enabled with Drop, it discards them silently. I would start with it off and turn on forwarding only if people keep misspelling the real address. Then send a real message to hello@example.com and confirm it lands in the destination inbox. 📬 Email Routing > Activity Log shows the decision for each message: Forwarded, Dropped, Rejected or Delivery failed.","\u002Fapi\u002Fmedia\u002Fposts\u002Ffree-email-forwarding-for-your-personal-domain-with-cloudfla-826ff625\u002F6.webp",{"local":41},{"headline":44,"body":45,"imageUrl":46,"images":47},"Forwarding only. A routing rule receives mail and","Forwarding only. A routing rule receives mail and does not send it, so a reply from the destination inbox goes out through that provider, from its address. Sending from the domain is a separate product, Cloudflare Email Sending, which is still in beta.","\u002Fapi\u002Fmedia\u002Fposts\u002Ffree-email-forwarding-for-your-personal-domain-with-cloudfla-826ff625\u002F7.webp",{"local":46},{"headline":49,"body":50,"imageUrl":51,"images":52},"Negative DNS answers stay cached for the zone's","Negative DNS answers stay cached for the zone's SOA minimum TTL, 1800 seconds (30 minutes) by default on Cloudflare. If you queried MX before the records existed, your resolver may keep returning empty. Query a different resolver or go over DoH to confirm.","\u002Fapi\u002Fmedia\u002Fposts\u002Ffree-email-forwarding-for-your-personal-domain-with-cloudfla-826ff625\u002F8.webp",{"local":51},{"headline":54,"body":55,"imageUrl":56,"images":57},"Five steps give a domain working addresses with","Five steps give a domain working addresses with no mailbox bill, and I would pay for a mailbox only on the day replies have to come from the domain itself.","\u002Fapi\u002Fmedia\u002Fposts\u002Ffree-email-forwarding-for-your-personal-domain-with-cloudfla-826ff625\u002F9.webp",{"local":56},[59],"dev",[61],"Technology",{"name":63,"url":64},"Dev.to","https:\u002F\u002Fdev.to\u002Fkhasky\u002Ffree-email-forwarding-for-your-personal-domain-with-cloudflare-email-routing-37md","en",{"handle":67,"displayName":68},"spots","Spots","queued",{"views":71,"likes":72,"saves":72,"shares":72,"completions":72,"opens":72,"skips":72,"depthSum":72},3,0,"2026-09-29T07:54:44.733Z","local"]