Emails from magento go to spam folder

July 20, 2017 287 views
Email Ubuntu

I installed a magento droplet (it was a magento 2, but I ended up having a magento 1.9.3 install there because reasons :) ), then I set up the dns for the domains and I configure the mail using google suite, with the mx records, the SPF and the DKIM that google gives me. When I send an email from the Google app the headers are correct and they pass all verification. Whenever the emails are directly sent from magento they always go to spam. This are the headers for the magento email: https://pastebin.com/pLxjjbXB

It's obiously not using the correct SPF and DKIM I set up in the domain. The magento config is the usual, in mail settings I have the smtp of google and the port, and the rest of the config is magento's default right out of the box. I didn't do any special config on the server besides what was already there from the one click install.

2 comments
  • For reference, this is an email sent directly from the gmail app from the same email address: https://pastebin.com/4g90uZMa so you can see SPF and DKIM are ok

  • Try these steps:

    1. Install Postfix as a send-only SMTP server on your droplet (as you have your email hosted at Google).
    2. Configure DKIM authentication for Postfix
    3. Configure your DNS with SPF and DKIM records
    4. Finally, if you are using GSuite (instead of the free gmail service, you have to setup relay service in the Google Apps admin area.

    I have quite a few Magento sites running on cloud servers using the above steps and never have a problem with emails going out from Magento. For the first three steps, there are detailed tutorials here on Digital Ocean.

1 Answer

Hi @spartanvape

I've never used the SMTP, since I felt it was slow and I didn't have enough logging.
I would recommend that you use the SMTP Relay, which is also what Google recommends:
https://support.google.com/a/answer/176600?hl=en

My setups with Magento has always been with a local Postfix server, which handles the queue and sends via the relay. That way, it will retry sending if it lost connection and I have a log of everything going out.

Have another answer? Share your knowledge.