Help! Customer aren’t getting emails from my website!
Here’s a familiar situation… You have a website that sends out emails, but some of your customer aren’t getting the emails.
There are a number of potential solutions. For example, using an SMTP plugin can make a huge difference. You can add SPF and DMARC records to your DNS (which we’ll cover later).
But first it might be a good idea to figure out what’s happening…
Testing Your Emails
Recently, I discovered a useful resource called Mail-Test.com.
Here’s how it works…
1. Copy the unique email address.
2. Send an email to that email address from your website.
3. Wait a minute and click “Then check your score”.
If everything is good, you’ll get a high score like this…
If you’re only having mild trouble, it will probably be something like this…
If your score is really bad, it’s likely that nobody is getting your emails.
The good news is, this report tells you why your deliverability score is low, so you can hopefully find ways to fix it.
There are many potential problems. Let’s go over a few of them…
One potential issue you might run into, is not having SPF record, or worse having a incorrectly configured SPF record.
What the Heck’s a SPF Record?
SPF records are a public way of saying “here’s a list of places allowed to send emails in my name”. It tells email providers (like Gmail, Yahoo, MSN, etc.) that your emails can only come from specific sources.
Technically, anyone could send an email and say it’s from you.
Without an SPF record, it’s hard for spam filters to know if your website is authorized to send emails on your behalf or not. As such, domains without an SPF record will have a lower deliverability score.
So, How do I Make an SPF Record?
SPF records are fairly technical. It’s probably shouldn’t be done by a novice. Even so, if you’re reasonably technical, you can do it yourself.
You’ll need to be able to edit your DNS, and do the following…
1. Create a TXT record
2. Start it with v=spf1
3. Include some IP addresses that are allowed to send out email. Start with “ip4:” followed by an IP address. For example: ip4: 188.8.131.52
4. End with ~all (which means anything not included in this SPF record is not allowed to send email from your domain).
Here’s how that looks in Plesk (on our servers).
Examples of SPF Records
Let’s look at a few examples of actual SPF records. See more SPF Record examples.
Only Allow Emails from certain IP addresses
v=spf1 ip4:184.108.40.206/28 ip4:220.127.116.11 ~all
This examples includes two authorized IP addresses.
The ~all means everything else is not allowed. Using -all is a stronger action but is more likely to block legitimate emails if you forget something.
Only Allow Emails From GSuite (Google Workspace)
v=spf1 include:_spf.google.com ~all
The above examples says that only Google Workspace (GSuite) emails are valid.
Allow domain’s MXs to send mail for the domain, prohibit all others.
“v=spf1 mx ~all”
Use this if you don’t send email out through your website.
This Domain sends No Email At All
Only use this if you don’t send any emails from your domain, but you’re having trouble with spoofing.
I’m honestly still trying to wrap my head around DMARC.
I Need a DKIM First?
Before using DMARC you need to set up SPF and DKIM or “your domain will probably have delivery issues”.
Apparently you can partially use DMARC with just an SPF record, but only for reporting. You don’t want to use it to block unauthenticated messages (which is the main point).
However, DKIM is a pretty involved process.
First, you have to generate a key.
Then use the Public Key to create a DNS record,
Finally you need to install the Private Key on your email server.
If you can manage to set up the DKIM, you’ll be able to set up DMARC.
Here’s an example DMARC entry…
Other Ways to Improve Deliverability
If you’re looking to improve deliverability of your Mailing List, check out this article from Neil Patel: https://neilpatel.com/blog/improve-email-deliverability/
You can test how deliverable your email is with a service called Mail-Test.com. Though the information it gives is fairly technical.
https://dmarcian.com/spf-syntax-table/ explains some of the basic concepts around SPF records.
You can check your SPF record here: https://dmarcian.com/spf-survey/
Google has its own explanation here: https://support.google.com/a/answer/10685031