Feature: Email Routing - Multiple Catch-all Addresses

I was invited to try out the email routing and it has been working fine so far.

Me and my parents are running a small business where we’d like to receive all emails in each of our own personal email addresses.

Reason for the catch-all is because sometimes our clients misspelled our email addresses particularly our names, and for all of us to receive catch-all emails is because sometimes one of us might miss the email.

Would like ability to forward emails to multiple ids. This would remove the need for me to have postfix on my server which is only used to forward mails.

Use case? Netflix account shared by four users. Netflix mails sent to account mail id are forwarded to all four users. Since authorization is required for forwarded addresses, this should be safe to implement?

7 Likes

Will it be possible to forward email sent to one address on to multiple addresses?

This would be very handy for routing the same email to more than one person in a household.

9 Likes

I wanted to add a feature suggestion for email routing, it would be great if we could add multiple destination addresses for one email. Eg. [email protected] => [email protected], [email protected].
And also to be able to route an domain email to another domain email. Eg. [email protected] => [email protected] and [email protected] => [email protected].
Thanks

6 Likes

Agreed this feature is a must for me. I have an address that sends messages to myself and my wife for accounts we share.

5 Likes

+1 to the request here.

It would be extremely useful to be able to forward to multiple accounts.

3 Likes

+1 - I do wish this was clearly documented.

I have just created {$my-name}-{$partner-name}.email to do that and create shared logins for our life. I’m now going to have to go back to mxroute.com which I found as the most superior option so far.

Once Cloudflare activate this feature I’ll be back as quick as a flash :zap:

1 Like

It will be great to be able to forward an email to multiple emails (with a limit of 5 to avoid spammers) (like an email list)

1 Like

+1
This is the number1 feature nowadays!
I’ll shave my beard if you do it! :slight_smile:

I absolutely need to be able to forward most emails to more than one destination address, and 5 would be adequate, but why limit it to 5? All destination addresses must be authenticated, so spam should not be an issue. Anti-spam authentication could even be enhanced by something like limiting further destination addresses when there are more than 5 pending an authentication response.

1 Like

I just switched my name servers on one of my domains to try out Cloudflare. I’m really liking it, except I really need 2 email aliases at my domain to forward to 2 email addresses instead of just one.
I’d like to stay and transfer my domains to Cloudflare as well, but I really need this feature.

1 Like

I really love and appreciate the Email Routing feature!
I thought it would be very useful if we cloud route emails to multiple addresses, for instance, [email protected][email protected] and [email protected].
I would be very grateful if Cloudflare added this kind of feature!

Same here - I have switched from TSO Host a UK domain registrar who had this feature - it was enabled simply by using or deliminator between the destination addresses

+1 for me.

Any update on this? It’s been kicking around for over a year now and feels a relatively low bar in terms of feature requests! It’s basically unusable for me without it.

Thanks

lol, I was also looking for this feature. No update till now.

Porkbun is another alternative until they add this feature. You can link an external domain and add up to 20 email forwarders for free. Been using it for a few years, it hasn’t failed me yet.

+1, getting my vote too.

I’m currently with ImprovMX until I can migrate to CF.

ImprovMX has had its fair share of outages and unlogged lost emails over the past year. On the other hand, I do love some of their features, putting it here in case the Cloudflare Email routing team checks this thread:

  • multiple recipients for a forwarded email
  • regex match: enable regular expressions to catch a leftside of the email address
  • regex capture: enable to match a pattern and use it in the destination email. For example a rule (.*)@smallcompany.com[email protected]
  • transparency may be a bit too technical for the current CF MX menu, yet it’s useful to be able to browse the logs of the routed emails in the past N days and check the status, including the SpamAssassin score and rules it hit.

I’ve not tried the email workers but just noticed them now. Would anyone know if the above is already possible with the current features of CF?

All this should be possible with Email Workers which are currently in closed beta.

2 Likes

It’s me again. My use cases, and probably all cases of this thread, are already possible on CF with Email workers. This is a terrific feature!

It’s no more in closed beta, but open beta, so everyone should get access. I can’t comment on the reliability though.

Here’s an example solving the need of the thead title (catchall to multiple recipients):

export default {
  async email(message, env, ctx) {
      await message.forward("[email protected]");
      await message.forward("[email protected]");
      await message.forward("[email protected]");
  }
}

Here’s a more complex example, solving for my use cases and more:

export default {
  async email(message, env, ctx) {
    // Declare blocklist of email addresses
    const blocklist = [
      "[email protected]", 
      "[email protected]"
      ]

    const notifyFromList = [
      "[email protected]",
      "[email protected]"
    ]

    const notifyToList = [
      "[email protected]"
    ]

    // Reject blocklist matches
    if (blocklist.includes(message.from)) {
      console.log(`Rejecting email from ${message.from} to ${message.to}`);
      message.setReject("ERR550: Address does not exist");
      return 0;
    }

    // Notify Telegram webhook
    if (notifyFromList.includes(message.from) || notifyToList.includes(message.to)) {
      console.log(`Notifying about email from ${message.from} to ${message.to}`);
      await fetch(`https://somedomain/webhook/telegram?title=%E2%9C%89 Got email from ${message.from}&body=Subject is: ${message.headers.get('subject')}`);
    }

    // Custom forwarding
    if (message.to.startsWith("support.")) {
      await message.forward("alice123+" + message.to.split("@")[0].split(".")[1] + "@gmail.com");
    }
    // Main routing
    else {
      // Sender-based routing
      switch (message.from) {
        case "[email protected]":
          await message.forward("[email protected]");
          break;
    
        default:
          await message.forward("[email protected]");
          await message.forward("[email protected]");
          await message.forward("[email protected]"); 
      }
    }
  }
}