Preface
Previously, I also wrote an article about self-hosting a mailbox using home broadband. However, such self-hosted mailboxes can often only receive emails; whether they can be delivered to the recipient's mailbox depends entirely on the email security policies of the recipient's email provider (see the article for setup and subsequent testing results:Docker Series: Building a Mail Server Based on poste.io): The result is a high probability of not getting in... After all, spam is rampant, and major email providers have their own complete email scoring standards. Thinking you can just build a mailbox and send emails everywhere is purely wishful thinking... So, spending so much effort to build a mailbox just to receive emails feels like a bad deal, and crucially, it also exposes your origin server address. If you get directly attacked, Cloudflare's traffic scrubbing feature is wasted. But indeed, I still want to have an email address with my own domain suffix, so that when leaving an email address for others, leaving something like[email protected]is still very cool.
Is there any efficient way to achieve this? Of course, it is the free "Email Routing" feature provided by Cloudflare. Simply put, it is similar to the "alias number" feature previously provided by mobile operators. You can add email addresses with your domain on Cloudflare as the suffix at any time. For example, if your domain is "example.com", you can freely add addresses like[email protected]、[email protected]email addresses, and you can specify which of your real mailboxes the emails received by different email addresses should be forwarded to. The advantage of this is that you can hide the address of the mailbox you actually use, and your external email address can be changed at any time (why does it feel like I want to do something bad?), while the disadvantage is that sending emails using these custom email addresses requires special methods, such as using the "send mail as" feature on Gmail, and whether it can enter the recipient's mailbox depends on luck... However, if the requirement is originally just to receive emails, then this method is absolutely perfect.
Configure Email Routing
Enter the Cloudflare domain configuration interface, go to "Email" - "Email Routing" - "Get started":

Fill in the custom email prefix, configure the actual bound destination email, and then click "Create and continue" below:

The following interface appears:

At this point, you need to find the verification email sent by Cloudflare in the destination mailbox and click the verification link in the email to complete the verification:

Note: Theoretically, after clicking the button in the red box in the image above, it should enter the configuration interface for MX records and DMARC TXT records. However, I don't know what went wrong with Cloudflare, but it bounced me back to the start page:

But the actual process is at the stage of configuring MX records and DMARC TXT records. I encountered this issue when configuring email routing for two domains. It should be a bug. The solution is also very simple: go through the process again and use a different custom address:

At this point, the following interface will appear directly. You can see that the destination address status is verified, because the previous custom address was successful, it's just that the interface didn't show up. Then click "Continue" in the red box below:

Then you come to the interface that should have appeared earlier but didn't. You can directly click "Add records and enable" in the red box at the very bottom:

You can see that the routing status is a green "Enabled". At this point, the custom email address can already receive emails and forward them to the bound destination mailbox:

Under "Routing Rules", you can see the two custom email addresses just created. You can also create more custom addresses in this interface, or delete existing email addresses by simply selecting the edit button to the right of the custom address you want to delete:

Under "Destination addresses", you can see all the bound destination email addresses, and you can also add new destination email addresses:

In the "Settings" menu, you can also add this feature to other subdomains of the primary domain:

I haven't researched this, as I don't have this need.
Send emails on behalf
If you want to set up sending emails on behalf, it is recommended to use Gmail's "Send mail as". The specific configuration location in Gmail is as follows:

I won't write down the specific configuration steps in detail here. There are many tutorials online, and it's not of great significance anyway. Testing shows that either it can enter the recipient's mailbox but with a prompt indicating it was sent on behalf (Gmail, QQ); or it goes directly into the spam folder (Outlook, NetEase). Some corporate mailboxes might even show dangerous warnings like authentication failure. So, forget about sending emails; I can only say that using Gmail to send on behalf is just a tiny bit better than sending emails from my self-hosted mailbox on home broadband~~~.
Summary
All in all, for some special occasions, such as an administrator mailbox used to provide contact information externally, which is mainly used to receive emails, Cloudflare's Email Routing feature is extremely practical. At least it is much more convenient and hassle-free than spending half a day setting up a mailbox on home broadband just to receive emails... And, more importantly, you can create different custom email prefixes for different purposes and bind them to different destination mailboxes, and the email prefixes can be changed at any time (I feel more and more like I'm up to no good), which at least saves the time of messing around with real mailboxes in special scenarios.