Subdomain and addresses

Every tenant that receives real mail claims a handle on the inbound domain and creates addresses under it. A handle acme answers to three forms of the same address:

FormExampleWhen
Apex, dottedacme.orders@mximp.comThe everyday form; what create_address returns.
Apex, plusacme+orders@mximp.comFor senders who prefer plus-addressing.
Subdomainorders@acme.mximp.comTenants given a dedicated subdomain; a paid option, since the mail provider enables subdomains one at a time.

Sandboxes have no handle; they ingest by upload.

Claiming a handle

claim_subdomain with a name. Rules:

A refusal names the rule. If the name is genuinely yours, call again with request_exception: true and a reason. A person reviews it; there is no automatic approval. If approved, the subdomain appears on your tenant and get_subdomain shows it. An exception is bound to your tenant and that exact name; the format rules apply even then.

Addresses

create_address makes an inbound address under the handle:

Pass bucket to create_address to make the address a bucket's own: the bucket's rule gains {"address": "orders@"} as an alternative, so mail to it lands there without further rule work, and list_buckets shows the full address beside the bucket with its activity (messages, auto-applied, held, last received over days). That is the address a person hands to a sender; the app lists them with a copy button.

Any address can be disabled (set_address_enabled), which is the first response when one leaks, and can carry a daily cap. set_catch_all accepts mail to any local part under the handle; it is off by default because a catch-all receives everything anyone sends.

Mail to an address that does not exist, or is disabled, is refused at the door and counted, so abuse is visible to the operator without the message ever being stored.

What rules see

The receiving address is the envelope recipient, recorded in its canonical dotted form acme.orders@mximp.com whichever form the sender used. A rule like {"address": "orders@"} matches the part after the handle, so it means the same thing in all three forms. Per-relationship addresses match the same way. The sender's identity comes from SPF, DKIM and DMARC results, never from the message body.

This page as Markdown.