Configuring SiteGround SMTP mail server on Discourse

Indiesk
Indiesk
Sep 28, 2017 · 2 min read

Discourse is a great open source project that allows developers to host an online forum community. However, its documentation on installation assumes the reader already has a lot of knowledge about the framework, and it utilizes the forum to answer many of the common questions that may be raised during the first time installation and further modifications.

As a SiteGround user, I attempted to configure the SMTP server using one of my email accounts from my SiteGround server, which gives you configuration details similar to the following:

Secure SSL/TLS Settings

(Recommended)

Username:user@yourdomain.com
Password:Use the email account’s password.

Incoming Server:secureusXX.sgcpanel.com
IMAP Port: 993
POP3 Port: 995

Outgoing Server:secureusXX.sgcpanel.com
SMTP Port: 465

Authentication is required for IMAP, POP3, and SMTP.

This information seems sufficient to set up the SMTP server for the new discourse project, and I’ve simply typed in the above information while following the questions from running ./discourse-setup command. Hence, my final /containers/app.yml reads:

## TODO: The SMTP mail server used to validate new accounts and send notifications
DISCOURSE_SMTP_ADDRESS: secureusXX.sgcpanel.com
DISCOURSE_SMTP_PORT: 465
DISCOURSE_SMTP_USER_NAME: user@yourdomain.com
DISCOURSE_SMTP_PASSWORD: some_password #DISCOURSE_SMTP_ENABLE_START_TLS: true # (optional, default true)

I type in my domain in the url, and I see the congratulations page, as the installation guide states. Then, I click on the Register button to create my first admin account, and it takes me to the next page that tells me that the confirmation email has been sent.

But in my inbox, I see no such email.

According to the Discourse’s official forum, I can type something similar tail shared/standalone/log/rails/production.log to see if there was any error while sending out the email.

At the end of the output, it says

Sent mail to user@yourdomain.com (60060.6ms)
Job exception: Net::ReadTimeout

Why the error?

It’s hard to tell the exact reason, but from extensive research on the Discourse’s forum, it looks like Discourse does not fully support SSL/TLS for common Ubuntu 16.04.3 x64 environment.

In the end, I had to simply use the non-secure option for setting up the notification email address.

I would like to dig more into this and figure out a way for anyone like me who’s trying to use the SMTP mail server from a shared server like SiteGround.

If any of you have a better insight on this matter, feel free to leave a comment.

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade