TipsWordPress

How to avoid the spam folder when sending emails with WordPress

By May 16, 2016 No Comments

In this article we will teach the basics of how to avoid being flagged as spam when sending our newsletters. How to do it? Let’s see it together.

The scenario is utterly common: you send an email and it ends in spam folder. But why does that happen?

The first thing you’ll may notice is a rather weird behavior. When you send emails to Gmail accounts they are correctly delivered, while with Hotmail accounts they’re marked as spam. This suggests the first important consideration: mailbox providers adopt different techniques to decide when an email is or isnt spam. It’s important to underline that this behaviour isn’t limited to the big players: even when you get a personal domain and your provider gives you a mailbox (like stefano[at]thenewsletterplugin.com), there are spam filters in place.

Essentially, everything could be reduced to a simple concept, the spam score. Spam filters take a message and analyze it:

  • Which server does it come from? Is it black listed? What about its reputation?
  • Is that mail server allowed to send emails for the sender domain?
  • What about the content? Has it known spam links?
  • Was the messages signed with a DKIM signature?
  • Is there an SPF or a DMARC record in the domain DNS?

As you can see, some questions contain very technical terms and some of them require specific (and not always easy) configurations to reduce the spam score of sent messages. There could be even a filter on the sender’s provider: for example many hosting providers let blogs send emails but they check them before trying the delivery. Doing this, they aim to prevent hacked blogs from sending tons of spam that may result in a blacklisting of their network.

The minimum checklist to prevent spam – with WordPress

If you’re sending newsletters from your blog without any special configuration, you’re probably sending them from the same server where your blog resides and with a sender email like newsletter@youdomain.com (this is the default on Newsletter).

  1. Be sure the sender email address uses your domain name (in my case the sender is newsletter[at]thenewsletterplugin.com) and make sure that is a real email address or at least an alias. A simple test you may perform: you should be able to send an email to that address without having back a delivery error message. Sometimes, providers don’t allow to set a sender address. Open a ticket to their support to get more information.
  2. Using as a sender address something like myname@gmail.com because you don’t have an email service associated to your domain, almost surely won’t work. See below for a simple explanation. Anyway, considered you’re trying to use your blog to send beautiful and interesting newsletters,  we strongly suggest you to get an email service associated to your domain.
  3. On your blog, set Newsletter with a Return Path email address using a real mailbox you check from time to time: that lets you to have the delivery errors reported. That address can be the same of the sender address. Sometimes providers do not allow the setting of a return path, this is why Newsletter will leave this field empty by default.

If you have an external STMP email service

If you have a mail service (and you should, since you’re using newsletter@youdomain.com which is a real mailbox, right?), you probably have an SMTP available to send emails from your favourite email client. You can try to send email through that mail service (SMTP) which is more spam-proof. Ask the provider your credentials and set them up on Newsletter SMTP settings.

If the SMTP test fails, ask the provider hosting your blog if there are limitations in connecting to external SMTP services. If the provider is the same for both the website and the mail (as it is with Bluehost, Hostgator, Siteground and many more) there should be no blocks in place. Should something not work, open a ticket on their support service.

SPF records

This is a bit technical but it’s worth a mention. An SPF record is something that basically says: emails from @mydomain.com can be sent by that list of servers (SMTP). Modern providers giving you the mail service and an SMTP (see above) should already have those records set for you. Ask them to check that.

Too complicated! Is there a simple solution?

Yes, partially. There are many mail delivery services you can choose from, which deal with most of those problems quite well. For example, we sends our emails with Amazon SES (after Mandrill changed its price scheme) using our Amazon SES Extension (with its one click setup). Sendgrid is cheap and reliable and even Mailgun is a great alternative.

Two important notes:

  1. Those providers could require a few tech configuration on DNS, which your hosting provider should be able to deal with quite easily.
  2. Don’t use free mail delivery services, as almost all of them will process your email with a second class server and the spam problem could be even worse.

Why you shouldn’t use  a Gmail address as sender

If you use as a sender address something like myname@gmail.com, people will see your newsletter from myname@gmail.com. Hence, there is no reason preventing you to use anothername@gmail.com to deliver your email, sending message apparently from another person. This is actually… spam.

To block those kind of dishonest behaviours, more and more mail services started to check incoming emails asking something like: are messages from Gmail allowed to be sent from that server?  If the server you’re sending from isn’t listed in Google allowed servers list, the email will be refused (actually dropped). Of course the same reasoning applies to hotmail.com, outlook.com, yahoo.com.