There are a number of reasons why WooCommerce emails are going into spam folders. Depending on your setup, we’ll troubleshoot and provide solutions to prevent your WordPress and WooCommerce notification emails going to the spam folder!

Issues Sending WooCommerce Emails With Gmail

So let’s assume you’re using your gmail email address to send emails from WordPress and WooCommerce.

I assume, what you actually mean is that in the “admin email” setting, you’ve set the address to your gmail account.

Let’s explain what ACTUALLY happens when you do this.
1.You receive an order

  1. This triggers WordPress to send a signal to your server to send an email
  2. Your server, which is probably shared by a tonne of other websites – then uses php to create and send an email that “appears” to come from an email address.

However – what your server is actually doing is “spoofing” the email address it’s sending from. As it’s NOT actually come from that email server – it’s been “faked” by your websites server

This is how spam emails work – I.e. this is the way those crappy bots send emails. So inboxes just filter this crap out as “serious” websites DON’T send their emails like this.

Sending WooCommerce Emails With SMTP Server to Avoid Spam

So… you need to send your emails via an SMTP server

This is the way that “real” emails are sent

This is a 2 part recipe.

Part 1 – install a plugin so your WordPress site can communicate with an SMTP server

This is simple – just install the WP SMTP plugin in WordPress and you’re done for now

Part 2 – designate a Mail server provider for your website to talk to

You CAN use a free Gmail account and send emails via the Google Mail Server
BUT this can cause issues with email validation and verification on inboxes – so not the best solution

The better solution would be to use a Mail server provider.

Mailchimp’s Mandrill often gets mentioned as a Transactional Email Provider – but this is more than just a Mail server solution, and for now I’d avoid this complexity – it’s not necessary to solve your immediate WooCommerce spam issues!

My recommendation:

Sendgrid – they have a forever FREE plan for up to 100 emails a day (not a lot, but if it’s JUST order notification emails you’re trying to send then this should suit a small number of daily orders)

Check out sendgrid here.

Use Mailchimp for WooCommerce Order Notification Emails

Having said all of this – you CAN use Mailchimp for order notifications.

There are a degree of “transactional emails” that CAN be sent by Mailchimp within their standard eCommerce email plans.

If you’re just using Mailchimp for newsletters and not for your ecommerce emails – this may sound like a BETTER solution to the above.

If that’s the case – look at the Mailchimp For WooCommerce official plugin and connect your WooCommerce store to your Mailchimp account – this will mean You CAN configure Mailchimp to send order notification emails etc.

NOTE – if you send the order notification emails with Mailchimp YOU need to switch them off in the email settings of WooCommerce – so WooCommerce is no longer sending emails on your behalf. Otherwise you’ll send emails twice!

Once from Mailchimp and once from your SMTP server.

I would STILL take the above action of installing WP SMTP and setting up sendgrid so that emails such as password reset emails etc. For your Admin users comes via sendgrid and NOT via the “dodgy / spammy” php mailer on your random server.

Difference between Mailchimp and Mandrill

Here’s the difference between Mailchimps “Mandrill” transactional emails and “built in” transactional emails Mailchimp will send

TLDR;
Mailchimp itself will send order notifications and abandoned cart emails as long as you set it to do so and use the Mailchimp for WooCommerce plugin to connect your store to Mailchimp

You don’t need Mandrill by ANY stretch of the imagination to solve this issue – it’s a solution that’s appropriate for pro developers

https://mailchimp.com/help/about-transactional-email/

Authentication, Verification, DKIM and SPF records

If you stop here, things will be better (most likely) but NOT solved yet…

If you’re going down the “WP SMTP plugin and Sendgrid Mail server” route for order notifications, It’s also necessary to complete 2 levels of email verification.

Level 1 of email address verification

Verify / authenticate your domain with Sendgrid – just follow steps once signed up to Sendgrid

This is BASIC and allows Sendgrid to send emails on behalf of your DOMAIN name.

Level 2 of email address verification

Now… think about it. In theory, it’s possible that someone else could try and “Spoof” your email address – I.e. they try and send emails that LOOK like they’re coming from your domain…

So the way “the Internet” protects us against this is through use of “SPF records” within your domains “DNS records”

SPF records TELL the internet which Mail servers are ALLOWED to send emails on behalf of your domain.

As standard you may have an SPF record which is setup as standard when you register your domain or point the nameservers at your hosting account.

What you DON’T want to do is have MULTIPLE SPF records

So if you already have an SPF record in your DNS records this SPF record needs to be UPDATED with the Mail servers you’re permitting to send emails on your behalf.

In your case, if you already send Newsletters via Mailchimp – you should have Mailchimp listed on the spf.

If you use free gmail, but have configured gmail to also send emails from your domain address, Google’s Mail server needs also to be listed on the SPF record.

Now in addition, if you have setup Sendgrid – you should also list Sendgrid on the list of permitted senders on the SPF record.

And if you haven’t done so already, you should most definitely authenticate your domain with Mailchimp in your Mailchimp account.

Mailchimp Vs Mailpoet

Isn’t it just easier to go with Mailpoet?

Well, no… not really.

Mailpoet is just a replacement for Mailchimp.

If you just configure Mailchimp to send your order notifications instead of WooCommerce – by installing the Mailchimp for WooCommerce plugin and setting up the order notification email in Mailchimp – you’ll largely be in the same positioning as moving to Mailpoet and configuring that to send your order notifications…

This isn’t a “software choice” issue – it’s a software configuration issue – and regardless of which service you choose (Mailpoet or Mailchimp) you STILL need to set stuff up properly!

So many store owners out there without a clue on the above – yes there’s some technicalities I’ve skimmed over for the purpose of posting on FB – but the steps to solve are all there.

I wish WooCommerce would provide some extensive education on this subject as it’s so damned important

I almost wish WordPress would refuse to send email UNTIL you connected an SMTP server!

Solving Emails Going to Spam For Various Email Servers

How to stop Sendgrid emails going to spam

You first need to ensure that you have authenticated your domain with Sendgrid. You then need to make sure that your SPF record is setup correctly, including the Sendgrid Mail Server in the SPF record – giving it permission to send on behalf of your domain in a verified way.

Make sure you don’t have more than 1 SPF Record in your DNS records! Additional mail servers should be added to your EXISTING SPF record (you should already have one).

Your DNS records will be found either with the host of your website (who probably also hosts your DNS records) or with your domain registrar in some cases. If you’re unsure of what to do, approach someone with technical knowledge around websites – you DON’T need a developer!

FAQs

How do I stop emails from going to spam in WordPress?

The first step is to replace the standard WordPress PHP mailer, but the following steps involve enabling an SMTP server to send mail, and editing your SPF record (a DNS record) to ensure emails sent by this server are verified as sent from your domain.

There may be a few other reasons your WorPress emails are ending up in the spam. These can include having a trigger word in your domain, a more hilarious example of this was a website named something like “bigd!£k$donuts.com” (I hashed out the obscene word). Emails received from this domain are unfortunately destined for the spam folder.

If you’re in this situation, it’s worth considering getting a domain you can use for emails which doesn’t contain the explicit word causing the issue. In the above case “bigdsdonuts.com” would probably do the job.

How do I stop my emails from going to spam?

Emails in general can end up in the Spam folder for a number of reasons. Assuming we’re talking about emails being sent by your website’s domain name i.e. [email protected] the following is a short list of reasons:

  • Explicit words in the domain name itself (see example above)
  • Domain reputation / spam score / email reputation is low (the more you’re reported as spam, the more likely you’ll be caught in spam filters)
  • Your SPF records aren’t setup to allow verified email to be sent by your mail server (by far one of the most frequent reasons with WordPress and WooCommerce emails)
  • Your Subject or Body content of the email have trigger words that are automatically filtered by Spam filters.

Why are my emails suddenly going to spam?

Your emails could suddenly start going into Spam folders if your domain reputation or spam score is negatively impacted. This in itself can be as a result of your emails being reported as Spam.

It’s also worth noting that if you use shared hosting for your WordPress website, the IP address that you share with multiple other websites (not just your own) will have a spam score. If one of the other websites on the shared hosting platform has an increased spam score, this can then impact the deliverability of YOUR emails IF you’re using the default WordPress PHP mail server.

This ISN’T the case if you’re using an SMTP server to send the email, as the emails are being sent from a completely separate IP address from your shared hosting package.

This is again a reason why one of the first things we do to a new installation of WordPress is to replace the default PHP mailer with an SMTP mail server.