Random subdomain mailbox creation only generates addresses; mail delivery depends on DNS / Cloudflare Email Routing covering *.<base-domain>. Cloudflare Email Routing does not inherit apex configuration onto subdomains, so a wildcard `*` MX record on the base domain is required for random subdomains to actually receive mail. - Add `[!IMPORTANT]` block in subdomain.md (zh/en) explaining the two deliverable paths: DNS-only wildcard MX (recommended for random subdomains) vs Cloudflare dashboard "Add subdomain" - Link to Cloudflare Email Routing — Subdomains official docs from worker-vars.md and subdomain.md - Instruct copying apex MX records to host `*` preserving each record's priority/target, instead of hardcoding specific MX targets - Shorten frontend `randomSubdomainTip` for CreateAccount and Login views (6 locales: zh/en/de/es/ja/pt-BR), drop Markdown backticks (Vue text interpolation renders them literally), and point users to the docs instead of embedding DNS instructions - Trim overlap between existing `[!NOTE]` and new `[!IMPORTANT]` in subdomain.md - Update CHANGELOG.md / CHANGELOG_EN.md under v1.9.0(main) Closes #1035 Closes #1026 Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
4.3 KiB
Configure Subdomain Email
::: warning Note Subdomain emails may not be able to send emails. It is recommended to use main domain emails for sending and subdomain emails only for receiving.
Mail channel is no longer supported. The reference below is limited to the receiving part only. :::
Reference
Create Random Second-level Subdomain Addresses
If your base domain mail routing is already configured, you can also let users create mailbox addresses with an automatically generated random second-level subdomain, for example:
- Base domain:
abc.com - Created address:
name@x7k2p9q1.abc.com
This is useful for mailbox isolation and reducing repeated hits on the same address.
Add these worker variables:
RANDOM_SUBDOMAIN_DOMAINS = ["abc.com"]
RANDOM_SUBDOMAIN_LENGTH = 8
RANDOM_SUBDOMAIN_DOMAINS: base domains that allow optional random second-level subdomainsRANDOM_SUBDOMAIN_LENGTH: random string length, range1-63, default8
The create-address APIs only generate a random subdomain when the request explicitly passes
enableRandomSubdomain: true. The frontend sends this field when the "enable random subdomain"
option is checked. If you call /api/new_address or /admin/new_address yourself, include it in
the request body:
{
"name": "test",
"domain": "abc.com",
"enableRandomSubdomain": true
}
domain must be the base domain configured in RANDOM_SUBDOMAIN_DOMAINS, such as abc.com.
If you want to create an address under a specific subdomain such as team.abc.com, do not pass
enableRandomSubdomain: true; use the direct-subdomain flow below instead.
Note
This feature only appends a random second-level subdomain when the mailbox is created.
There is currently no backend switch that globally forces random subdomains; API calls that do not pass
enableRandomSubdomain: truewill not randomize automatically.
[!IMPORTANT] A wildcard MX DNS record is required for random subdomains The worker only generates addresses like
name@<random>.abc.com— whether mail actually arrives depends entirely on DNS / Email Routing being configured for*.abc.com, and Cloudflare Email Routing does not propagate the base-domain configuration onto subdomains. See Cloudflare's Email Routing — Subdomains documentation.There are two ways to make
*.abc.comdeliverable:
- DNS-only wildcard MX (simplest workaround) — In your DNS, copy every existing MX record on
abc.comto host*, preserving each record's priority and target value. This makes*.abc.comresolve to the same MX targets as the apex, so mail flows into the same Cloudflare Email Routing zone and is picked up by the apex Catch-all rule that points at the Worker. No extra Cloudflare-side action is needed.- Cloudflare dashboard "Add subdomain" — Add the specific subdomain in the Email Routing dashboard and configure its DNS + Catch-all routing rule separately. This only covers the specific subdomain you add, so it is not suitable for arbitrary random subdomains.
For random subdomain mailboxes, option (1) is the recommended path. Without it, the random subdomain feature will appear to work in the UI but inbound mail will never reach the Worker.
Reference issue: #1035
Let APIs Specify Subdomains Directly
If you do not want the system to generate a random subdomain, and instead want the caller to
explicitly create addresses like team.abc.com, enable:
ENABLE_CREATE_ADDRESS_SUBDOMAIN_MATCH = true
When this is enabled, as long as abc.com is in the allowed base-domain list, the following
addresses can be created through /api/new_address or /admin/new_address:
name@team.abc.comname@dev.team.abc.com
Note
This only relaxes the domain validation used by the create-address APIs. It does not change the default domain dropdown, and it does not create Cloudflare-side subdomain mail routes for you.
If the admin panel has already saved an override once, you can switch it back to Follow Environment Variable to clear the override and return to env fallback behavior.