Common questions about fixing Magento transactional email that is not sending, stuck in the queue, failing SMTP auth, or landing in spam.
Why is my Magento store not sending any emails?
In most cases it’s one of four things: (1) the email sending cron group or message-queue consumers aren’t running, so async emails just queue up; (2) the mail transport is broken, PHP mail() blocked or an SMTP relay misconfigured; (3) a fatal in the email template stops the render; or (4)Sales Emails is switched off in config. We trace the path from sales_email config to the MTA and find the exact break point, usually within a few hours.
Bug-Fix Sprint, $499 (~20h @ $25/hr): a batch of email bugs or one deep deliverability root-cause with regression tests.
Emergency / Retainer, custom: 24/7 on-call, with a $2,499 stabilization sprint (~100h @ $25/hr) available.
You get the quote before any work starts, never billed silently.
Was this helpful?
My emails are stuck in the queue and never send. What’s wrong?
When Asynchronous sending is enabled (Stores > Configuration > Sales > Sales Emails), Magento doesn’t send instantly, it queues messages and relies on the email sending cron group plus the consumers_runner / message-queue consumers to drain them. If cron isn’t running, or the sales.rule.* and email consumers aren’t alive, mail piles up forever. We restart the consumers, pin them with supervisor or systemd so they survive reboots, and verify cron is actually firing.
Was this helpful?
I get “SMTP connect() failed” or “535 Authentication failed”, how do you fix it?
Those errors mean Magento can reach (or can’t reach) your SMTP relay but the login is being refused. Common causes: wrong port (use 587 with STARTTLS or 465 with SSL), an account password used where the provider requires an app password or API key (Gmail/Office 365), the host blocking outbound port 25/587, or a missing SMTP extension. We configure the SMTP module for your relay (SendGrid, Mailgun, Amazon SES, Postmark, Office 365), fix the TLS handshake, and send a test until we get a clean 250 OK.
Was this helpful?
My emails send but land in the spam folder. Can you fix deliverability?
Yes, landing in spam is almost always a missing or broken authentication record. We publish and verify SPF (authorise your sending host), DKIM (cryptographically sign the mail), and DMARC (tell receivers what to do with unaligned mail). We also check the sending IP/domain reputation and the From / Return-Path alignment. After the fix we run an inbox-placement test across Gmail, Outlook and Yahoo so you can see the difference.
Was this helpful?
Invoices send but order confirmation emails don’t. Why?
We're sorry, an error has occurred while generating this content.
Was this helpful?
My email template shows a blank email or “an error has occurred”. How do you fix it?
Magento 2.4.x silently fails an email when a template has invalid directives: adjacent }}n1Uc2iarQMl8zcdb42Yycy91xyNec1If{{depend, a nested {{depend X}}...{{depend Y}}...{{/depend}}n1Uc2iarQMl8zcdb42Yycy91xyNec1If, or a n1Uc2iarQMl8zcdb42Yycy91xyNec1If{{var X}}n1Uc2iarQMl8zcdb42Yycy91xyNec1If that isn’t in the template’s @vars whitelist. The result is a blank email or the “we are sorry, an error has occurred” message. We pre-compute conditionals in PHP where needed, fix the directives, and re-test the render so the template produces correct, complete HTML.
Was this helpful?
Mail bounces with “550 sender rejected” or a Return-Path mismatch. What now?
Receivers reject mail when the From address, the envelope sender (Return-Path), and the authenticated sending domain don’t line up, or when you’re sending From a domain you’re not authorised to use. We set the General Contact / Sales Rep sender addresses to a domain you control, align the Return-Path with your relay, and make sure SPF authorises the actual sending host. Once the envelope matches the authenticated domain, the 550 rejections stop.
Was this helpful?
Do you work on staging or directly on my live store?
Whichever is safest for your setup. For email work we strongly prefer to reproduce and test on staging or with sandbox addresses so we never blast your real customers with test sends. If only live access is available, we test against catch-all/sandbox inboxes and disable customer-facing sends until the fix is confirmed. We never flip the live queue on until a clean test send and 250 OK are verified.
Was this helpful?
Can you fix my email setup without breaking my live store?
Yes, that’s the whole point of our process. Email and DNS changes are reversible and low-risk when done in the right order: we capture the current config first, test changes against sandbox addresses, publish DNS records with sensible TTLs, and only switch the live queue back on after a verified test send. Nothing about an email fix touches your catalog, checkout, or order data, so there’s no risk to live transactions.
Was this helpful?
Email broke right after a Magento upgrade. Do you fix that?
Yes, this is common. An upgrade (or a security patch) can reset email transport config, change the queue/consumer setup, deprecate a template directive, or remove a custom SMTP module that wasn’t upgrade-safe. We compare the before/after config, restore or re-point the transport, re-validate the templates against the new version’s rules, and confirm the async queue and cron are wired correctly for the version you’re now on (2.4.4-2.4.9).
Was this helpful?
Is there a guarantee the emails will actually send after the fix?
Yes. We don’t call it fixed until we’ve sent a successful test transactional email, watched a real order trigger its confirmation, drained any backlog in the queue, and verified a clean 250 OK at the relay plus SPF/DKIM/DMARC passing at the inbox. If the same bug comes back within the coverage window, we fix it at no extra charge. You also get a short written note on what broke and how to keep email healthy.
Was this helpful?
Request a quote
I'll reply within 2-4 hours business with a written quote and timeline.