Sending domains & senders — Mimeo docs
Sending domains & senders
Every email carries links back to your Mimeo — the unsubscribe link, click tracking, the open pixel. Connecting your sending domain puts those links on your domain, and senders define who your mail comes from.
What this is
One settings page — Settings → Domains & senders — holds two short lists and one address:
- A sending domain is a domain your mail sends from (
yourdomain.com), connected to your Mimeo with a single CNAME record. - A sender is a from name plus an email address on one of those domains — the identities the From field offers when you write an email.
- The mailing address is the physical address your email footers show — details below.
On a fresh Mimeo, the setup wizard builds all of it for you — your senders, sending domains, and mailing address are created as part of setup. This settings page is where they live afterward: add a domain, add a sender, or change a link subdomain any time. Do it once per domain and it never comes up again.
Connecting a domain: one CNAME
The CNAME's target is your Mimeo's own address — the setting the app calls your Mimeo's host. It's detected automatically the first time you log in, and it's shown at the top of Settings → Domains & senders, where you can correct it if it's ever wrong (an APP_HOST environment variable overrides both). Webhook URLs and links in account email use the same value.
Go to Settings → Domains & senders and add the domain you send from —
yourdomain.com. Typing the link host itself (mimeo.yourdomain.com) also works — Mimeo files it under the right domain.Mimeo shows you one DNS record. Add it wherever that domain's DNS is managed:
| Type | Host | Value |
|---|---|---|
| CNAME | mimeo.yourdomain.com |
your-mimeo.com |
- Wait for DNS. Adding the domain checks it immediately, and Check now re-checks on demand. The HTTPS certificate issues itself a few minutes after DNS goes live — nothing to upload, nothing to renew.
The check is honest rather than hopeful: Mimeo fetches https://mimeo.yourdomain.com/.well-known/mimeo-instance through the new host and confirms the answer is its own identity token. A green check means the CNAME is live, HTTPS works, and the record points at your Mimeo — the three things a subscriber's click needs. When it isn't green yet, the status says why: still propagating, certificate not issued yet, or pointing somewhere that isn't your Mimeo.
Why is this needed?
Every email you send carries links back to your Mimeo: the unsubscribe link in the footer, the click-tracking redirects, and the open-tracking pixel. The domain those links live on has to match the sending domain you verified at your provider. Links on an unrelated domain — like your Mimeo's own app host — hurt deliverability, and "from one domain, links to another" is exactly the pattern phishing filters are trained on.
With a connected domain, everything a subscriber sees rides your domain: links wrap as https://mimeo.yourdomain.com/l/…, the open pixel serves from /o/…, and unsubscribe runs through /u/… and /api/v1/subscription/… on the same host. The mail and its links agree.
The app itself stays where it is. A connected domain serves only those email-facing routes — anything else requested through it redirects to the app's own host, so there's exactly one login URL and mimeo.yourdomain.com never grows into a second copy of the app. And the guarantee runs both ways: Mimeo refuses to send an email whose body links to the app's own host, so the host subscribers were never meant to see never leaks into their inbox.
The provider has to verify it too
A domain needs two green lights. The CNAME proves the domain reaches your Mimeo; your provider's DKIM verification proves you may send as it. Verify the domain in the Postmark or Resend dashboard the way you would for any sending — DNS records for DKIM — and Mimeo tracks both sides per domain:
| Status | What it means |
|---|---|
| Waiting for DNS | The CNAME hasn't reached your Mimeo yet. |
| Waiting on Postmark / Resend | DNS is done, but the provider hasn't verified the domain for sending. |
| Not checked yet | Mimeo hasn't been able to read the provider's verified list, so it can't say either way about this domain. A banner at the top of the page gives the reason. |
| Connected | Both sides agree. Mail from this domain sends. |
Mimeo reads the provider's verified list when you press Verify connection (Settings → Provider) or Check now here, and keeps the answer as a cached snapshot. The check that runs before every send is a local read of that snapshot — sending never waits on a provider API call.
If that read fails — most often a provider API key without permission to list domains — Mimeo says so and repeats the provider's own message, rather than reporting your domains as unverified. A key that can send but can't read domains leaves every domain and sender showing Not checked yet until you replace it.
Senders and the From picker
A sender is a from name and an email address, defined once on the same page. The From field in the email editor is a dropdown of your defined senders — one is marked default, and the first sender you add becomes the default without you having to say so. There's no free-typing a from address into an email: the identities you send as are declared, like custom fields are.
A sender's address has to be on a connected domain, and the provider has to have verified it. What "verified" covers depends on the shape your provider offers:
- A DKIM-verified domain covers every address on it — add as many senders on that domain as you like.
- A Postmark per-address sender signature covers exactly that one address.
- Resend has no per-address concept — verification is domain-level only.
The mailing address
Anti-spam law (CAN-SPAM in the US, and its equivalents elsewhere) requires every marketing email to show a physical mailing address for the sender. A P.O. box or a registered virtual mailbox works — it doesn't have to be your home.
Set it once on this page and layouts show it with the {{ mailing_address }} tag, which every real send resolves at send time — change the address here and every future send picks it up, no template edits. The default layout ships with the tag already in its footer, next to the unsubscribe link.
Mimeo nudges rather than blocks: sending still works without an address, but the dashboard alerts you until one is set.
When something isn't verified
Enforcement happens at send time, on every send — broadcasts, sequences, flows, and test sends alike. An email from a sender whose domain isn't connected doesn't fail and doesn't disappear: it holds in the queue, with the reason "Its sending domain isn't connected" visible on the Queue screen.
The hold releases itself. Mimeo re-checks every few minutes, so within minutes of the domain or sender going green the held mail sends — no manual release, no resend button. Fix the configuration and the queue catches up on its own.
Broadcasts tell you earlier: a broadcast without a verified sender reports "a verified sender" among the pieces it's missing before it will schedule, so you find out at planning time rather than in the queue.
The Test provider used in development doesn't verify identities, so none of this gates anything in development. Enforcement switches on when a real provider — one that verifies sending domains — is connected.
Multiple domains
Send from as many domains as you like — a newsletter domain and a product domain, say. Each one is one CNAME: mimeo.first.com and mimeo.second.com, both pointing at your Mimeo. At send time, the from address's domain picks the matching connected domain automatically, and that domain supplies the link host for everything in the message. Nothing to choose per email, per sender, or per send.
See also: Set up sending · Getting started · Sending providers · Tracking