Email delivery configuration checklist

Email deliverability is complicated. Here are a few important things you should check first:

  • Be sure to set the notification email from: address correctly in your site settings. The domain specified in the “from” address of the emails you send is the domain your email will be validated against.

  • Know how to view the raw source of the email in your mail client, so you can examine email headers for important clues. In Gmail, it is the “show original” option in the drop-down menu at the top right of each mail.

  • IMPORTANT: Does your ISP have a reverse DNS record entered to associate the domain names and IP addresses you send mail from? Test your Reverse PTR record here. If your ISP does not enter the proper reverse DNS pointer record, it’s very unlikely any of your email will be delivered.

  • Is your domain’s SPF record correct? Test your SPF record here. Note that TXT is the correct official record type for SPF.

  • Is your domain’s DKIM record correct? This will significantly improve email deliverability. Test your DKIM record here.

  • If you run your own mail server, check to make sure the IPs of your mail server are not on any email blocklists. Also verify that it is definitely sending a fully-qualified hostname that resolves in DNS in its HELO message. If not, this will cause your email to be rejected by many mail services.

  • We highly recommend you send a test email to mail-tester.com to verify that all the above is working correctly.

(The easy way is to create an account on SendGrid, SparkPost, Mailgun or Mailjet, which have low cost mailing plans and will be fine for small communities. You’ll still need to set up the SPF and DKIM records in your DNS, though!)

13 Likes

Thanks for creating this guide! The only issue I’m having is that I cant find the “show original” option that you’re talking about. As far as I’m concerned, I’m looking in the right place.

1 Like

This might help:

2 Likes

Ah, okay. I was able to find it. Thank you! :+1:

1 Like

For some number of months notification_email is set in an ENV variable in app.yml, so it’s not accesible in the site settings.

Also, how does this topic relate to Troubleshooting email on a new Discourse install, which provides some of the same advice with more what to do information and has been around a long while. Should these two topics about the same thing link to each other?

2 Likes