
💌 WooCommerce emails not sending: a complete guide to causes and solutions
A customer places an order, the money leaves their account, but the confirmation email never arrives. The client panics: the store took their payment and vanished. Sound familiar to a WooCommerce store owner?
The "emails aren't sending" problem ranks in the top 3 technical headaches after launching an online store. Admin notifications about new orders might not arrive, customers might not receive purchase confirmations, or all emails might vanish into thin air. The causes usually aren't in WooCommerce itself but in how WordPress handles mail by default.
Let's work through the chain of causes in order, from trivial "From" settings to connecting SMTP through Brevo. After this, emails will stop getting lost.
💡 Quick overview:
- Check the sender name and address in WooCommerce settings (most often the problem is here)
- Test the mail server with the WordPress plugin Check Email
- Review the sending log via WP Mail Logging to see if the email was sent at all
- Rule out spam filters and domain conflicts between sender and recipient
- Connect SMTP through Brevo (formerly Sendinblue) so emails send reliably
1. Check the sender name and address in WooCommerce
Half of "emails aren't sending" support requests get resolved at this step. WooCommerce by default populates the "From" field with whatever is specified in the general WordPress settings, and that often contains something like [email protected] or even a username without a domain.
Go to WooCommerce → Settings → Email tab. Scroll down to the "Email sender options" block:

What to check:
- "From" name: should be your store name in Latin characters, without special characters. The format
MyStoreworks, butMyStore@2024does not. Mail servers don't like special characters in sender names:@,#, and&signs. - "From" address: a real email on your domain. An address like
[email protected]on the store domainmyshop.ruwill trigger spam filters: the email came from the domainmyshop.ru, but the return address isgmail.com. Mail servers see the mismatch and cut delivery. - After making changes, click Save changes and immediately send a test order.
2. Test the WordPress mail server
If the sender settings are correct, the next step is checking the mail server itself. WordPress by default uses the wp_mail() function, which calls PHP's mail() on the hosting server. This mechanism works unreliably: many hosting providers block outgoing emails through PHP mail() to combat spam from virtual servers.
The Check Email plugin provides a simple way to check whether your server can send emails at all. After installation, go to Tools → Check Email, enter any external address (for example, your personal Gmail) and click "Send test email."

Result:
- Email arrived: the mail server works, the problem is on the WooCommerce side or with a specific notification type. Check whether the needed notification is enabled in WooCommerce → Settings → Email.
- Email didn't arrive (not even in spam): the server isn't sending. Move to step 6: you need SMTP.
3. Check the sending log
Even if the test email didn't arrive, it may have been sent by the server and then blocked on the recipient's side. The WP Mail Logging plugin shows what happens to each email after calling wp_mail().
Install the plugin, send a test order in WooCommerce, and go to WP Mail Log in the admin panel:

What to look for:
- Email is in the log but didn't arrive: the server sent it, the recipient's spam filter blocked it. Move to step 5.
- Email is not in the log: WordPress didn't even try to send it. Either the notification is disabled in WooCommerce → Email, or PHP
mail()is blocked by the host. You need SMTP (step 6). - Error in the Error column: read the error text, often it contains a direct answer (invalid header, hosting SMTP server rejection).
4. Switch the recipient's email service
A specific but common situation: customers and the store admin use email on the same domain. For example, both you and the buyer have addresses at @yourdomain.com. The email goes from [email protected] to [email protected], and the mail server sometimes "drops" such emails because it sees mail addressed to itself from an external source.
The solution is simple: for administrative notifications, specify an address on an external service like Gmail, Yandex.Mail, or Proton Mail. In WooCommerce → Settings → Email, find the relevant notification and change the recipient address to an external one.
5. Rule out landing in spam
If emails are being sent but end up in the "Spam" folder, the problem is the IP reputation of your hosting. Shared servers on cheap hosting regularly end up on blacklists (DNSBL) because of spammer neighbors. Result: Gmail and Outlook reject everything coming from that IP.
What you can do:
- Contact your hosting provider and report the problem. Large hosts (SiteGround, Cloudways, Kinsta) resolve this quickly; smaller ones may throw up their hands.
- Switch hosting providers: drastic, but sometimes the only way if the IP has been blacklisted for months.
- Connect Brevo's SMTP server: the most reliable path without changing hosts. Emails go through Brevo's infrastructure with a clean reputation instead of the hosting mail server.
The third option is exactly what the next section is written for.
6. What SMTP is and why it solves the problem
SMTP (Simple Mail Transfer Protocol) is the protocol used for professional email sending. When you click "send" in Gmail, the email goes through Google's SMTP server. When WooCommerce calls wp_mail(), the email goes through PHP's mail() on the hosting server, and this mechanism doesn't use authentication, encryption, and often lacks DKIM/SPF records.
An SMTP server, on the other hand:
- Authenticates each email with a login and password, making spam filters trust it.
- Encrypts the connection with TLS so the email can't be read in transit.
- Has a reputation as a clean sender and isn't on blacklists.
The most accessible way to connect SMTP to WordPress in 2026 is the Brevo service (until May 2023: Sendinblue). Brevo's free tier allows sending up to 300 emails per day, enough for most WooCommerce stores. Paid tiers start at 9,000 emails per month.
A video will help you better understand the topic, covering Brevo setup on WordPress from installation to test email:
7. Set up Brevo for sending WooCommerce emails
Brevo replaces wp_mail() with its own SMTP server. After setup, all WooCommerce emails (orders, password resets, admin notifications) go through Brevo's infrastructure with guaranteed delivery.
Installing the plugin
Go to Plugins → Add New, search for "Brevo" (or "Sendinblue," as the plugin is still indexed under the old name). Install and activate the Brevo for WooCommerce plugin:

Getting the API key
Register at brevo.com and confirm your email. In your dashboard, go to SMTP & API → API Keys, create a key, and copy it:

Return to the WordPress admin panel, open Brevo → Home, and paste the key into the API Key field. The plugin will connect to your account:

What happens after activation
The plugin automatically:
- Redirects all
wp_mail()calls through Brevo's SMTP server - Adds a DKIM signature and sends emails via TLS
- Shows delivery statistics in the Brevo dashboard
After activation, send a test order in WooCommerce. The email should reach the recipient within 10-30 seconds. If not, check the Transactional → Logs tab in the Brevo dashboard: you can see the fate of each email with precise delivery status.
For stores with high order volume or those for whom Brevo doesn't work for some reason, we have a roundup of the 5 best SMTP plugins for WordPress.
⁉️🤔 Frequently asked questions
Why do WooCommerce emails go to spam even though SMTP is configured?
Brevo's SMTP server has a high reputation, but spam filters also analyze email content. A subject line like "ORDER CONFIRMED!!!" with three exclamation marks is more likely to go to spam than "Order #1047 confirmed." In WooCommerce → Settings → Email, edit the subject of each email: keep variables like
{order_number}and{site_title}, remove aggressive phrasing. Also check whether the text contains links to blacklisted domains.
Can I use Gmail SMTP instead of Brevo?
You can, but with limitations. Gmail SMTP through the WP Mail SMTP plugin allows up to 500 emails per day for a regular account and up to 2,000 for Google Workspace. However, Google scans outgoing mail and may block the account for "suspicious activity," and mass transactional emails fall under this criterion. For a store with 5-10 orders per day, Gmail will work, but for a growing project, Brevo is more reliable: no risk of blocking, detailed delivery statistics, and open tracking.
Emails arrive with a delay of several minutes. Is this normal?
Transactional emails through Brevo are delivered in an average of 2-5 seconds. Delays of several minutes are a signal to diagnose. Check the Transactional → Logs tab in Brevo: a
queuedstatus lasting longer than a minute indicates Brevo server overload or problems with the receiving server (corporate Exchange performs a chain of SPF → DKIM → DMARC checks). This isn't a store problem, but if customers complain, ask them to add the store address to their whitelist.
Sendinblue was renamed. Will my old settings break?
No. Brevo rebranded in May 2023 with full API backward compatibility. All old Sendinblue keys work, and the plugin in the WordPress repository is updated under the slug
woocommerce-sendinblue-newsletter-subscription. The only visual difference is the logo and name in the admin panel. No migration steps are required: SMTP settings, limits, and templates are preserved in your account automatically.
What if I don't want to use a third-party SMTP service?
Running your own SMTP server on a VPS (Postfix + Dovecot) makes sense at volumes above 100,000 emails per month: dozens of hours of setup and constant IP reputation monitoring. An alternative is connecting Amazon SES through WP Mail SMTP, costing fractions of a cent per thousand emails, but requiring manual DKIM/SPF/DMARC setup in DNS and no visual delivery statistics without an external dashboard. Below 100,000 emails, Brevo and similar services are cheaper and simpler.
Which solution to choose for your store
The WooCommerce email problem isn't magic but a chain of three links: sender settings, hosting mail server, and delivery mechanism. If you work through the chain from top to bottom after reading this article, emails will stop getting lost that same day.
Quick summary by scenario:
- Emails sometimes arrive, sometimes don't: start with step 1, check the "From" name and sender address. Most often the problem is right there.
- Emails don't arrive at all and the Check Email test is silent: move to step 6 and set up Brevo SMTP. This solution has the lowest cost of error.
- Emails go to spam: SPF/DKIM/DMARC + Brevo. Without SMTP, hosting IP reputation can't be fixed.
If your email volume exceeds 300 per day, upgrade your Brevo tier or look at alternative SMTP plugins. And remember: every undelivered order confirmation email means a customer who won't come back.



