I’m migrating my blog from ghost (older version) to ghost (new version). The server I was previously hosted on had its own mail transport agent, so I didn’t really have to worry about sending emails (or, at least it just worked). Now, however, I need to setup an email system.
I have 0 members, so bulk email isn’t a concern at this time. However, transactional emails (user signups, etc…) are not going through. I have set up my config.production.json file as follows:
Ghost starts as I would expect, but when I try to sign up for a new account / subscribe, I get a message stating that it can’t send the magic link, after timing out.
Thanks for the response. I actually used this as my configuration guide. Something still appears to be incorrect in the setup, though, because even with that exact configuration (with my passwords and such), I’m still getting no emails passed through.
I’ve also tried setting it with a dreamhost email address (I also have an email address that’s @ my custom domain hosted by dreamhost). This doesn’t work, either, which leads me to believe there’s some kind of connection issue between my server and these SMTP servers. It’s a linode that I just set up with Ubuntu 20.04.
How would I go about diagnosing where the email is getting dropped?
Trying the obvious: You restarted Ghost after changing the config file? You don’t have a firewall set up? Whoever your host is isn’t blocking your server’s outbound email?
Oh, and you might try starting Ghost with ghost run -D, which makes logging very verbose (spammy!) and might get you a more detailed error.
Ghost on PikaPods uses env vars in the pod settings for mail config. You’d want to use a port of 587 and set mail__options__secureConnection to false. (thanks to @mjw for that clue to solving my issue).