Spam software, filters and algorithms used by ISPs to filter email to detect spam can sometimes catch legitimate emails. Every spam filter, ISP and organization’s algorithms work differently. What may pass through one may not pass through a different filter.
What is considered spam is constantly changing and evolving and is largely based on what recipients identify and mark as spam or junk.
Use the tips below to follow best practices for your messages.
Never use deceptive headers, from names, or reply-to addresses. Use a recognizable From Address and Display Name. Consider avoiding using “no-reply” in the from address (no-reply is impersonal). If the From Address is an unmonitored mailbox, be sure to make it clear to your recipients how to reply otherwise.
Make sure your email authentication records are properly set up
Most receiving servers and spam filters look at your sending domain’s DNS records to determine whether they are properly implemented and if they authorize JangoMail (or whomever) to send emails on your behalf.
Your domain’s SPF record should be valid and include JangoMail’s “include” record (and in special cases, a custom SPF record or specific IPv4 addresses from us). Your DKIM record should be valid and enabled in your JangoMail account. You should send from a valid email address that can receive emails; some servers check that your sending domain has a MX record and can receive emails.
Use a branded custom tracking domain – we use this in open and click tracking, and JangoMail generated URLs like the unsubscribe link. Set up a DMARC record for additional security of your domain.
HTML coding (and encoding)
Use pre-designed email templates from JangoMail or a reputable email designer for your messages. Bad HTML code can trigger spam filters, as can misspelled words. Copying from Microsoft Word or other programs can create sloppy and extraneous HTML that can cause rendering issues, plus add code bloat. Bad coding practices can also greatly increase the size of your email messages, such as embedding images and including attachments. Normal-sized messages are typically under 30 KB in size. Avoid font colors similar to your background color. Use an easily readable font size. Do not use characters that are not standard ASCII characters. If you need to include an empty cell or paragraph for spacing, encode the blank space with so you don’t leave email clients hanging trying to interpret your empty space and filling it in with a black diamond question mark. Not all HTML is equal (thanks, Outlook), so use HTML (and CSS) that renders well everywhere.
Links should be easy to identify and clearly labeled. Link key phrases and make sure your link goes where it says it will go. If using click tracking, anchor text should be phrases, not URLs. Avoid using links that are shortened by link-shortening services as spam filters can consider it spammy since the shortened link is “hiding” the true link.
Include a plain-text version of your message
If you’re sending an HTML email, make sure you include a corresponding plain-text version of your message (which JangoMail can auto generate for you if set in the message content properties). Spam filters look for the existence of both HTML and plain text versions and can penalize messages missing plain text content (even though almost all email is sent using HTML). Adding plain text tells spam filters you care about everyone.
Avoid sending attachments
It’s best to avoid sending attachments. Instead, host your attachment file (in your JangoMail account or elsewhere) and provide it as a link to click. Spam filters distrust attachments, and some types of attachments cause delivery problems. Plus, for reporting purposes, you may never know if a recipient bothered to open the attachment. Click tracking the link to the attachment will tell you who at least saw the attachment. Doesn’t mean they actually read it, but it’s a start.
Send to recipients that have your permission and wish to receive emails. Use double opt-in or a stronger means of confirming engagement (such as clicking a link in a confirmation email). Don’t continue sending to hard bounces (JangoMail prevents that). Hard bounces are an invalid or non-existent email address that cannot be delivered to again. ISPs pay attention to a sender’s rate of hard bounces. Avoid sending that results in recipients frequently marking your message as spam/junk (aka complaints), which have an extremely negative effect. Consider pruning non-engagers (i.e., people who have never opened). Why continue to send to people who don’t engage with you?
ISPs learn to recognize what recipients typically do with your messages over time. If you normally get negative actions and inactions from your recipients – this greatly affects your sending reputation. Things like regularly receiving high bounces, getting a large number of unsubscribes, and users marking your messages as spam all impact your sending reputation.
The goal for your sending reputation is to teach and train spam filters that your emails are desired and expected. This comes from sending relevant, timely emails to recipients that want and expect them. For initial engagement, include a message at the sign-up source prompting recipients to check their junk folder and add you as a contact or safe sender. And despite all that you do, sometimes the receiving domain provider decides to do its own thing – like seeing my annual Xbox Gold renewal notification from Microsoft going to my Hotmail junk folder.
Sending reputation is a huge factor in avoiding spam and getting to the inbox. User action trumps everything though. You can do everything right, and some people will mark your message as spam or junk versus unsubscribing because clicking that button or link is easier than finding your unsub link. Make it easy for users to unsubscribe. You can add an unsub link at the top of your message, and don’t hide the unsub link in microprint at the bottom of the message using a font color that barely stands out from the background.
JangoMail offers tools to help – email previews, delivery tests, built-in spam scoring for campaigns, and address hygiene/verification. Address verification (for a nominal charge after a free tier is exhausted) is already available as an API call to check a single address, and a new upcoming feature includes being able to hygiene your entire list, either automatically for every list, or on demand within the user interface.
As always, please contact Support if you have any questions.