Learn · 4 minute read
WooCommerce emails not sending or going to spam: how to fix it
WooCommerce hands every email to WordPress, and WordPress by default sends through your web host. That is the usual weak point. Work through these in order.
First, find out which problem you have
- Nothing arrives, not even in spam. The server is not sending, or the host blocks it.
- It arrives in spam. The email is sent but not authenticated. Go to step 3.
- Only some emails are missing. Check that the email is enabled under WooCommerce, Settings, Emails.
Fix it
- Check the basics. Under WooCommerce, Settings, Emails, make sure each email is turned on and the "From" address uses your own domain, not a free-mail address.
- Stop sending through the web host. Many hosts limit or block mail sent directly from the server, and mail from a shared server has no signature of your own. Send through an email service instead, using a plugin that connects to it. SendSend has a WordPress plugin for this.
- Authenticate your domain. Publish SPF, turn on DKIM for the service you send through, and add DMARC. SPF, DKIM, DMARC.
- Send a test and read the result. Check the message headers for SPF, DKIM and DMARC "pass".
Check your domain
Run your domain through the free domain checker to see it. It shows missing SPF, DKIM and DMARC records, which are behind most spam problems.
Common questions
Why do WooCommerce emails go to spam?
Usually because they are sent from the web server with no DKIM signature and an SPF record that does not list the server. Receivers cannot tell they are really from you.
Do I need an SMTP plugin?
You need a way to send through a proper email service. That can be SMTP or an API plugin. The goal is authenticated mail from your own domain.
Will this fix password reset emails too?
Yes. Password resets, order emails and form notifications all use the same WordPress mail function.
Keep reading
- WordPress contact form emails going to spam: why, and how to fix it
- What is DKIM, and how do you set it up?
- An email deliverability checklist for small businesses
SendSend is an email API that checks these records for you and tells you when a domain is verified. Get started free.