Transactional email — order confirmation, shipment, invoice, password reset — is part of the customer-experience contract. When it fails, customers assume the store is broken even if the order is fine. This guide covers the four layers where email delivery breaks (Magento queue, PHP mail, SMTP relay, recipient spam filter) and how to fix each.
Email delivery pipeline on Magento • Testing the pipeline end-to-end • Configuring SMTP via extension • SPF, DKIM and DMARC for UK deliverability • Email queue and cron • Spam folder and reputation issues • FAQ
An order confirmation travels through several layers:
mail() or an SMTP library.Any layer can fail silently. Diagnosis works from layer 1 down to layer 5.
Quick tests to locate the failure:
ps aux | grep queue:consumers. Expected: several processes.echo "test" | mail -s "test" [email protected]. If this fails, Postfix is broken.var/log/.PHP mail() is unreliable. Route Magento through real SMTP via an extension:
Setup with Axigen from SmartXHosting:
composer require mageplaza/module-smtp. Run bin/magento setup:upgrade.mail.axigen.smartxhosting.uk. Port: 587. Auth: PLAIN. Username/password from your SmartXHosting email account.Axigen on SmartXHosting has good UK-inbox reputation out of the box; SendGrid and Mailgun are fine fallbacks with free tiers under 100 emails/day.
For inbox delivery (not spam), authenticate the sender domain. Three DNS records on yourdomain.co.uk:
v=spf1 include:_spf.axigen.smartxhosting.uk ~all (adjust for your SMTP provider).v=DMARC1; p=quarantine; rua=mailto:[email protected].Without these, Gmail and Outlook reject or spam-filter up to half of transactional email from a new domain. With them, inbox rate is typically 95%+.
Magento uses a queue-based email system. Cron runs the consumer that drains the queue. If cron is broken, email sits in the queue indefinitely.
Check cron: crontab -l should show Magento cron entries running every minute. If missing: bin/magento cron:install.
Check the queue: SSH and run bin/magento queue:consumers:list. Then check queue depth via MySQL or the RabbitMQ dashboard if enabled.
Force drain manually: bin/magento queue:consumers:start queue.emails.process — this runs the consumer in the foreground and shows each message it processes.
If emails send from Magento successfully but customers cannot find them:
Magento hosting plus Axigen email on one bill
SmartXHosting Magento plans pair neatly with Axigen email services for reliable transactional inbox delivery from UK infrastructure — one provider, one support team.
See Axigen emailQ: Why do only some emails fail?
A: Usually sender reputation per recipient domain. Gmail is strict; Outlook is variable. Intermittent failures point to patterns: high-volume domains, aggressive spam filters on specific corporate tenants.
Q: Can I use Gmail SMTP?
A: Technically yes with a Workspace account and app password, but Gmail limits to 2,000 emails/day and personal Gmail to 500/day. Sufficient for small stores; anything serious needs a proper transactional provider.
Q: Why does the email show “via postmark” (or similar) in Gmail?
A: Gmail indicates the actual sending server when SPF fails to align with the From domain. Fix SPF and DKIM; the “via” indicator goes away.
Q: How do I preview an email template before sending?
A: Admin › Marketing › Communications › Email Templates › select template › Preview. You can test-send to yourself too.
Q: Do I need transactional email for trade customers?
A: Yes — even B2B buyers expect order confirmations. Plus, your system relies on them for audit.
Q: Can SmartXHosting help set up SPF/DKIM/DMARC?
A: Yes. Open a support ticket with your chosen SMTP provider and SmartXHosting adds the DNS records for domains managed by us.
Q: What’s the impact of UK GDPR on marketing emails?
A: Transactional emails (order confirmations) are sent on contract basis, not consent. Marketing emails require opt-in consent. Keep the two streams separate.