A customer orders. Payment OK. Confirmation email nowhere — not inbox, not spam, sometimes silent bounce. The site sends via PHP mail() on shared hosting with 400 other sites. Transactional email is not slowed-down marketing mail: it is a contractual channel where deliverability directly equals sales and support load.
Transactional vs marketing
| Type | Examples | Requirement |
|---|---|---|
| Transactional | Order confirm, password reset, invoice | Deliverability > 99%, low latency |
| Marketing | Newsletter, promos | Consent, unsubscribe |
| Dangerous mix | Promo in order footer | Shared reputation |
Sending orders and newsletters from the same unwarmed IP asks Gmail to classify everything "promotion" — or worse, "spam". Filters do not read your intent; they read technical reputation.
One lost order receipt costs more than an annual API subscription — especially during promos.
Recommended stack
1. Send subdomain. send.brand.com or notifications.brand.com — never the main domain if marketing also sends from your infrastructure.
2. Provider API. Amazon SES, Mailgun, Brevo, Postmark — by volume and EU region. Pick a provider with bounce logs and webhooks.
3. DNS auth. - SPF including provider only for send subdomain; - provider DKIM keys; - DMARC p=quarantine then reject after report analysis.
4. Application. WooCommerce/PrestaShop plugin or SMTP/API config — not raw mail() on shared hosting.
5. Monitoring. Bounce and complaint webhooks, provider dashboard — alerts if bounce rate exceeds 2%.
Frequent e-commerce mistakes
From noreply@domain.com without DKIM domain alignment. Host SMTP with hourly limit — Black Friday order queue blocked. No bounce handling — dead addresses degrading reputation. Heavy marketing HTML copied into order template. Each mistake is fixable; accumulation is costly.
WooCommerce / PrestaShop in practice
Install official SMTP/API plugin or WP Mail SMTP configured for API. Plan async queue if volume grows — see WooCommerce Black Friday. Run sandbox test order to Gmail, Outlook and Yahoo. Enable send logs minimum 30 days post-launch.
Also test from mobile 4G: some carriers filter differently from office networks.
SPF, DKIM, DMARC: order matters
Configure SPF and DKIM on send subdomain first, then DMARC in observation mode (p=none) for one week. Analyse reports before tightening to quarantine then reject. Over-aggressive DMARC too early can block legitimate mail while you debug.
Choosing a provider by volume
Below one thousand transactional emails per month, Brevo or Postmark simplify onboarding. Above ten thousand monthly sends, Amazon SES or Mailgun often become more economical — provided you invest in initial configuration. Verify processing region if you handle sensitive data: a provider with documented European datacenter eases GDPR due diligence. Whatever the choice, avoid switching providers during peak sales without a reputation warm-up period.
The climax: the customer paid — Gmail should not decide alone
Also separate team mail from app sending: Business email.
Decide and move forward without blind spots
Choose a transactional API with EU region if data is sensitive. Configure send subdomain plus SPF, DKIM and DMARC before launch — not the night before. Test with mail-tester and aim for score above 9/10. Monitor bounces for at least one month after go-live. Document procedure if provider changes, so the next team does not start from zero.
Frequently asked questions
Why do order emails land in spam?
DNS auth, shared IP, reputation and content — often combined. Fix all three axes, not one alone.
Host SMTP or transactional API?
API suits order volume; shared SMTP remains acceptable for low volume with strict configuration.
Subdomain for sending?
Often yes to separate transactional and marketing reputation — and simplify DNS configuration.
How to test deliverability?
mail-tester, Postmaster Tools, multi-provider test sends, then bounce monitoring for at least one month.
When a customer pays, the confirmation email is part of the product — treat it as such, not a forgotten log file.