← Blog/Deliverability

Setting up an ecommerce email platform without losing the inbox

October 15, 2026·7 min read·By MailPilot

Do the setup in this order: subdomains and stream separation, authentication per sending domain, a filtered list import, warm-up, then automations. Nearly every failed ecommerce email migration is the same story in different brand colours — a new platform connected on Monday, a full-list campaign sent on Tuesday, and placement that never recovers.

Decide the sending architecture first

Picking domains after you have connected the platform means re-authenticating everything later. Decide now:

StreamSuggested senderWhy separate
Transactional (receipts, shipping, password resets)t.brand.comMust never be affected by campaign complaints
Marketing campaigns and flowsmail.brand.comCarries the complaint and unsubscribe load
Person-to-person and supportbrand.comKeep the root domain's reputation clean
Click/open trackinglinks.brand.com (CNAME)Links on your own domain, not a shared tool domain

Two rules behind the table. Reputation is evaluated per sending domain, so a subdomain does not automatically inherit the root's standing — it has to be warmed on its own. And complaints follow the stream: if receipts and promotions share a domain, a bad campaign delays password resets.

Authenticate every sending domain

For each subdomain you will send from:

mail.brand.com.            TXT  "v=spf1 include:<your-platform>.example ~all"
k1._domainkey.mail.brand.com.  CNAME  k1.dkim.<your-platform>.example.
_dmarc.brand.com.          TXT  "v=DMARC1; p=reject; rua=mailto:dmarc@brand.com; adkim=s; aspf=s"
links.brand.com.           CNAME  tracking.<your-platform>.example.

Then verify on a delivered message rather than in a DNS checker. Read the Authentication-Results header and confirm spf=pass, dkim=pass, dmarc=pass, with header.from aligned. Watch the SPF limits: 10 DNS-querying mechanisms and 2 void lookups, one SPF record per domain. Ecommerce stacks accumulate senders — platform, reviews tool, helpdesk, shipping notifications, loyalty app — and SPF overflow is the normal failure mode.

Note that DMARC is evaluated against the organisational domain by default, so a policy at _dmarc.brand.com covers subdomains unless you publish sp=. If you want campaigns under a looser policy while you set up, publish a subdomain policy deliberately rather than by accident.

BIMI is optional and comes later: it requires DMARC at enforcement plus a Verified Mark Certificate, and it does not improve placement by itself.

Import the list with rules, not optimism

An ecommerce list is three populations wearing one name, and they need different treatment.

SegmentTreatment on day one
Purchased in the last 90 daysSafe to mail; your best warm-up fuel
Opened or clicked in the last 6 monthsSafe to mail, after the engaged buyers
Checkout-only, never engaged with emailHold back; a checkout is not a marketing opt-in in several jurisdictions
No activity for 12+ monthsHold back; one re-engagement attempt later, from a warmed domain
Imported, bought or scrapedDo not import
Previously hard bounced or unsubscribedSuppress permanently, and verify the suppression carries across the migration

Two migration-specific risks. First, suppression lists are what people forget to export; mailing someone who unsubscribed from your old platform is both a complaint and a legal problem. Second, "checkout opt-in" is usually a pre-ticked box or an implied consent, and treating it as a marketing subscription is where complaint rates come from.

Verify anything older than about six months before its first send — syntax and MX checks are deterministic and cheap, while SMTP probes are unreliable at Microsoft 365 domains, so hold catch-all and unknown verdicts back rather than mailing them.

Warm up while the old platform still sends

Do not cut over. Run both, shifting volume as the new domain earns standing. A workable four-week shape for a mid-size list, adjusted to your own volume:

WeekNew platform sendsAudienceOld platform
15% of daily volumeLast-90-day buyers onlyEverything else
215–20%Add 6-month engaged openersRemainder
340–50%Add 12-month engagedRemainder
480–100%Full engaged listTransactional only, then off

Rules while ramping: increase no faster than roughly 30–50% day over day, send transactional mail through the new domain from day one (it has the best engagement of anything you send), and treat 421/450 deferrals as an instruction to slow down rather than a bug to retry through. If complaint rate approaches 0.3% — Google's published threshold — stop increasing and fix the audience before continuing.

Build these automations first

In priority order, because each one sends to people who just raised their hand:

  1. Order confirmation and shipping updates. Highest engagement mail you will ever send, and it builds reputation for free.
  2. Welcome series, triggered on confirmed subscription. Two or three messages, first one within an hour.
  3. Abandoned cart. One reminder at about an hour, a second at 24 hours, a third only if your margins justify it. Suppress anyone who then purchases.
  4. Post-purchase. Delivery check-in, how-to content, review request timed to arrival rather than to order date.
  5. Win-back. One attempt for lapsed buyers, then suppression — not a permanent loop.

Only after these does a campaign calendar make sense. Flows send to engaged people, which is exactly what a young domain needs.

Segmentation that is worth the effort

Purchase recency, purchase frequency, product category, and lifecycle stage (never purchased / first purchase / repeat / lapsed). Four dimensions handle almost every ecommerce use case. Personalisation beyond a first-name merge means recommending from the category someone actually bought in — a merge tag that resolves to "Hi there," is worse than no greeting.

Sale events and volume spikes

Seasonal peaks are where ecommerce deliverability breaks, because they combine the highest volume of the year with the widest audience of the year. Plan backwards: start raising volume six to eight weeks before the peak, so the ramp lands gradually rather than as a 10x spike on one morning. Tighten the audience for the biggest sends rather than widening it, split a large send across several hours, and keep the deepest-discount messages for engaged segments.

What not to do

  • Do not send a full-list campaign to announce the new platform.
  • Do not point every stream at the root domain.
  • Do not import a list "to clean later".
  • Do not reuse a subdomain that previously sent badly; start a fresh one.
  • Do not skip the plain-text part, the live-text footer with a postal address, or the List-Unsubscribe and List-Unsubscribe-Post headers.
  • Do not let HTML exceed about 100KB — Gmail clips the message and hides your unsubscribe link behind "View entire message".
  • Do not judge the migration by delivery rate. Acceptance is not placement.

MailPilot covers the warm-up and measurement side of this plan: it warms mailboxes over OAuth (Gmail, Outlook) or SMTP/IMAP including SendGrid, Amazon SES, Mailgun and Postmark, checks SPF, DKIM and DMARC on delivered mail, tracks per-mailbox reputation daily, and measures real inbox placement per provider with a seed-inbox network — so you can see which subdomain is actually reaching the inbox during a migration instead of waiting for revenue to tell you.

MailPilot

Ready to reach the inbox every time?

Automated email warmup across real peer mailboxes. Live inbox placement monitoring. Free 7-day trial - no credit card required.

Start free trial
Reach the Inbox, Every Time
Connect unlimited inboxes for warmup. Free 7-day trial, no credit card.
Try for Free
WORKS WITH
OZOHO
inbox placement99.2%
free trial7-day
companies trust us340+

Start for free - no credit card required.

Get started freeBook a demo