For a Discourse instance to function properly Email must be set up. Use the
SMTP_URL
env var to set your SMTP address, see sample templates for an example. The Docker image does not contain postfix, exim or another MTA, it was omitted because it is very tricky to set up correctly.
Source: https://github.com/discourse/discourse_docker
Yah! Discourse doesn’t came with any MTA (mail transfer agent).
I had to install Postfix so that Discourse could send out emails.
My emails weren’t getting delivered…
I was getting the following error on discourse logs(/var/discourse/shared/standalone/log/rails/production.log)….
Job exception: Net::ReadTimeout
After a few tweaks… I got it working…
This is my /var/discourse/containers/app.yml excerpt….
## TODO: List of comma delimited emails that will be made admin and developer ## on initial signup example '[email protected],[email protected]' DISCOURSE_DEVELOPER_EMAILS: '[email protected]' ## TODO: The SMTP mail server used to validate new accounts and send notifications DISCOURSE_SMTP_ADDRESS: mail.domain.com DISCOURSE_SMTP_PORT: 25 DISCOURSE_SMTP_USER_NAME: [email protected] DISCOURSE_SMTP_PASSWORD: XXXXXXX DISCOURSE_SMTP_ENABLE_START_TLS: false
Rebuild the APP
cd /var/discourse/ ./launcher rebuild app
Readings
- https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-postfix-as-a-send-only-smtp-server-on-ubuntu-16-04
- https://meta.discourse.org/t/troubleshooting-email-on-a-new-discourse-install/16326/