Forward One Email to Multiple People with Cloudflare

You set up an email like [email protected], expecting your team to stay in the loop. Then you realise only one person receives those messages.
That’s not a mistake — it’s how Cloudflare Email Routing works by default. It forwards emails to a single destination, not multiple people.
If you need a shared inbox without paying for a full email platform, there’s a practical workaround. You can use a Cloudflare Worker to take incoming emails and send them to several recipients.
This guide walks you through that setup in a way that’s easy to follow, even if you’re not deeply technical.
What This Setup Does
Before jumping in, here’s the simple version of what you’re building:
- One email address (e.g.
[email protected]) - Incoming emails are intercepted
- A small script sends copies to multiple people
Think of it like this:
Incoming email → Worker → Multiple inboxes
This setup is ideal for small teams who need shared visibility on incoming emails without managing a full mailbox system.
What You’ll Need
Make sure you have the following ready:
- A Cloudflare account with your domain added
- Email Routing enabled for that domain
- Access to the Workers section in your Cloudflare dashboard
If those are already in place, you’re good to go.
Step 1: Verify the Email Addresses First
This is where most people run into trouble.
Cloudflare will only forward emails to addresses you’ve confirmed. If an address isn’t verified, emails simply won’t arrive — even if everything else is correct.
What to do
- Open your Cloudflare dashboard
- Go to Email Routing
- Select the Destination addresses tab
- Click Create address
- Add each email you want to receive messages
- Check each inbox and confirm the verification email
Every recipient must be verified before it can receive forwarded emails. If you skip this, delivery will fail without warning.
Step 2: Create the Worker That Handles Forwarding
Now you’ll create a small script that sends incoming emails to multiple people.
If you’re not familiar with Workers, think of them as simple scripts that run automatically when something happens — in this case, when an email arrives.
Steps
- Go to Workers & Pages in Cloudflare
- Click Create Application, then Create Worker
- Give it a name (e.g.
email-forwarder) - Click Deploy
- Open the Worker and click Edit code
You’ll replace the default code with this:
export default {
async email(message, env, ctx) {
const recipients = [
"[email protected]",
"[email protected]",
"[email protected]"
];
for (const recipient of recipients) {
await message.forward(recipient);
}
},
};
What this code does
- Takes every incoming email
- Loops through your list of recipients
- Sends a copy to each one
What you need to change
- Replace the example email addresses with your own verified ones
Only use email addresses you’ve already verified in Step 1. Unverified addresses will not receive anything.
Once done, click Deploy again to save your changes.
Step 3: Tell Cloudflare When to Use the Worker
The Worker is ready, but Cloudflare still needs to know when to use it.
Steps
- Go back to Email Routing
- Open Routing rules (or Custom addresses)
- Click Create rule
Now configure the rule:
Trigger: Enter the email address you want to use (e.g.
[email protected])Action: Select Send to Worker Choose the Worker you created
Click Save
That’s it.
Any email sent to your chosen address will now be forwarded to everyone in your list.
Common Pitfalls to Avoid
Emails not arriving
- Check that all recipients are verified
- Confirm the Worker is selected in your routing rule
Adding new recipients later
If you update the code with a new email address:
- Add it in Destination addresses
- Verify it
- Then update your Worker
Skipping verification will break delivery for that recipient.
Costs and Limits
Cloudflare Email Routing itself is free. The Worker introduces some limits.
- Free allowance: up to 100,000 executions per day
- Beyond that: paid plan starts at a small monthly fee
For most small teams, the free tier is more than enough.
Important Limitation: Replies
This setup only handles incoming emails.
If someone replies:
- The reply goes directly to the individual recipient
- It does not come back through your shared address
What this means in practice
- Your team won’t automatically see each other’s replies
- Conversations won’t stay centralised
If you need that behaviour, you’ll need:
- A shared mailbox (e.g. Google Workspace or Outlook), or
- A system that allows sending “from” your domain
When This Setup Makes Sense
This approach works well if you:
- Want multiple people to see incoming emails
- Don’t need a full shared inbox system
- Prefer a simple, low-cost setup
It may not be the right fit if you:
- Need shared replies
- Manage high volumes of email
- Require ticketing or tracking
Further thoughts…
This setup fills a specific gap in Cloudflare’s Email Routing. It gives you basic shared visibility without adding complexity or cost.
If you keep the limitations in mind — especially around replies — it’s a practical solution for small teams.
If you find yourself needing more control over conversations, that’s usually the point where a dedicated email platform becomes worth considering.
