Transactional emails are a way to strengthen the relationship between your platform and your users. They can even be critical in the proper functioning of your platform. Take the basic example of an account confirmation email; if the user does not receive it then he will not be able to complete his registration.
This article attempts to compile a list of best practices to follow in order to put the odds in your favor so that your automatic or marketing emails do not end up in spam.
If you are a web developer, project manager, or just looking for information on how to assess email deliverability then this article is for you!
Some good practices
Before proceeding with the quality audit of your emails, there are a few essential elements to check manually. Especially if you notice that your emails are not reaching their destination .
Check the format of email addresses
Typefaces regularly arrive in the typed world. This is therefore also the case for your email addresses. You can protect yourself from these errors by validating the format of the email address. Most browsers offer front-end format validation if you specify that the field is email type. Of course, a reprocessing on the server side is also recommended.
Make sure you have defined a valid sender
This error occurs frequently when using a backend development framework such as Rails or Jango. They are usually provided with a fictitious shipping email address such as “email@example.com”. This will work in a sandbox environment as long as the mails are not actually sent. This will not be the case in production.
Tips for RubyOnRails: If you are using the Currency gem, take the time to check the sender defined in its initializer.
Use a ReplyTo from the same domain
If you provide a reply-to address, make sure it belongs to the same domain.
Let's take the example of an email sent from “domaine.com” with a response address of “firstname.lastname@example.org”, there is a good chance that it will be considered as spam or at least that it will be delivered with a warning message. This case can be really blocking, especially for Gmail addresses.
Differentiate your transactional and marketing emails
Statistically, marketing email lists will have a higher proportion of spam and hard bounce reports (non-existent email). To prevent non-critical marketing emails from negatively impacting your reputation and therefore the deliverability of your transactional emails, use different shipping and IP addresses.
Now that we have seen the best practices to check, we can move on to assessing the deliverability of an automatic email.
Evaluate the deliverability index of an email
Each time it receives an email, an email client (Gmail, Outlook, Yahoo ...) will evaluate this email and assign it a spam-score index based on a list of defined criteria. The higher the rating, the more it will consider the email to be spam.
There are a number of tools available for calculating the spam score of an email. As a project manager in a web development agency, I regularly need to calculate this score to make sure that automatic emails from a website do not end up in spam. For this, I use Mail Tester which fulfills the simple need of calculating the deliverability index of an email based on the most important criteria.
Note: the score provided by Mail Tester is the deliverability index, so it is inversely proportional to the spam score mentioned above.
Mail Tester is very easy to use. When you land on its home page, it directly provides you with a random email address. All you have to do is send the automatic email you want to evaluate there.
In most well-built web platforms, automatic emails have a common look (header, footer, etc.) in which you simply insert content that varies from one email to another. So testing any automated email is enough to identify global issues.
TIPS: I create an account on the platform or application I want to test by entering the email provided by Mail-tester and then I trigger a password reset email.
In the example above, the score is quite high, so the email is unlikely to end up in spam. Generally speaking, if your grade is between 9 and 10, you probably don't need to change anything. However, if everything was still going well then I would not have written this article so I will continue to list common issues.
Check the DNS signature of your emails
Anyone (with a computer with an internet connection and computer literacy) can send an email using any sender email address, even if it is not theirs. In order to reduce the risk of phishing, email clients verify the authenticity of an email with 3 signatures provided at the DSN level (in other words, the configuration of the domain name used):
I will not go further in the technical explanations because it is not relevant for this article but if you want to deepen you will find documentation by following the links above.
The main providers of SMTP servers (SendinBlue, Mailjet, Mailchimp, Sendgrid, AWS SES ...) provide everything you need to configure them.
Below are tutorials for major vendors:
Configure SPF, DKIM and DMARC for SendinBlue
Configure SPF, DKIM and DMARC for Mailjet
Configure SPF, DKIM and DMARC for Mailchimp
Configure SPF, DKIM, and DMARC for AWS SES
Configure SPF, DKIM and DMARC for Sendgrid
If you are not using any of the SMTP servers listed above, you can easily find the correct tutorial on Google.
How to get out of a Spam-blacklist
Getting blacklisted is the worst case scenario because it is quite complex to get out of it. You then have two options:
Solution 1: Contact the support of the spam-lists concerned
and prove to them that your emails are not spam. If you only send transactional emails, you can “simply” explain to them that each of the emails sent is the result of a specific user action on your platform and that they are therefore important for the proper functioning of that -this. This has always worked for me however the support interfaces of these spam-lists are often very little UX-friendly so it is better to be patient!
In the example above, the email is blacklisted by the RedHawk spam-list so you have to go to the search page of the list (Mail Tester provides you with the link) and enter the IP used (Mail Tester you also provided at the top of the section, “220.127.116.11” in the example). You will then be able to see why you are blacklisted or at least the list of spam events (mails that have been cataloged or declared as spam). With this information, you can either make any necessary corrections or contact support if you deem these events to be irrelevant.
This solution is only possible if you are only blacklisted in a few lists. If you are blacklisted in a large number of lists, this manipulation will be very tedious and time-consuming.
Solution 2: Change your shipping IP address
This solution is often simpler. Depending on your level of subscription to the SMTP provider, you are probably using a shared IP to send your emails. This means that if any of the users who share the IP with you “spam” then that might affect you as well. To avoid this, you can request to benefit from a dedicated IP. The cost varies between 50 € and 150 € per year depending on your supplier. If you don't have blacklisting issues or send a very large amount of emails, it is not worth using such a service. Be careful, however, to make sure that you have followed all the advice in this article beforehand and to have investigated the reasons that made you appear in this blacklist otherwise you risk that this new IP ends up blacklisted as well.
And There you go ! The audit you performed with Mail Tester will potentially highlight other issues such as broken links (404) or image tags that do not have alt attributes but I will not cover them in this article as they are rather self-explanatory and easy to correct problems.
Thank you for reading, I hope this article has helped you and made it clear enough, otherwise feedback is welcome.