上一篇讲了ubuntu16下搭建discourse论坛的主要步骤,本篇主要讲讲邮件配置这个大天坑。先讲QQ邮箱配置。

QQ邮箱SMTP配置

配置阿里docker镜像加速

如果不配置加速器的话,会连不上docker的仓库。

  1. 申请一个阿里账号
  2. 控制台访问阿里镜像服务
    https://cr.console.aliyun.com/#/accelerator
  3. 查看自己的专属加速器地址,然后编辑/etc/docker/daemon.json来使用阿里加速器。
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["your-accelerator-address.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

然后就可以飞起来了。

配置discourse邮件服务器

discourse必须要配置SMTP邮件才可以使用,这个设计比较变态,如果你调不通这个邮件,你的账号没法验证,就没法进论坛。
1. 打开/var/discourse/containers目录下app.yml文件,如果没有,就复制一个

cd /var/discourse
cp samples/standalone.yml containers/app.yml
vim containers/app.yml

如果按照上一篇的操作步骤,此时应该存在一个app.ym。
2. 修改配置

DISCOURSE_HOSTNAME: xxx.com
DISCOURSE_DEVELOPER_EMAILS:  xxx@163.com
DISCOURSE_SMTP_ADDRESS: smtp.qq.com
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME:  your-qq@qq.com
DISCOURSE_SMTP_PASSWORD: "pwd"
DISCOURSE_SMTP_ENABLE_START_TLS: true

主要讲一下这个配置,有两个坑。

  • QQ邮箱的smtp密码不是你的登录密码,而是授权码,什么是授权码,百度一下QQ邮箱授权码。
  • 端口只有587有效,465无效。

最关键的坑还不是这个,这两个配置好之后,你可以在登录页面发验证邮件了,如果你查看discourse的日志,发现不会报错,但是你收不到邮件~~~

查看discourse服务器日志
cat /var/discourse/shared/standalone/log/rails/production.log

配置都对,不会报错,但是你收不到邮件。

方式一:编辑发件邮箱

找到之前配置文件,修改配置
1. 打开app.yml

vim containers/app.yml

这个就是配置文件
2. 定位文件底部,打开注释

- exec: rails r "SiteSetting.notification_email='xxx@qq.com'"

这个就是发件邮箱,如果不打开注释,网站内部的发件箱还是默认的,发不出邮件,也不会报错。
3. 重新build一下

./launcher rebuild app

再去登录一下试试,应该就ok了。

方式二:进网站修改

还有一个方法,用官方的工具launcher创建管理员账号。

  • 进入容器
cd /var/discourse
./launcher enter app
  • 创建管理员账号,按要求输入管理员邮箱和登录密码
rake admin:create
  • 登录网站,用刚才创建的账号直接登录。
  • 在settings页面设置notification email为发件邮箱,就是之前配置文件里面写的那个邮箱。
  • 在邮件测试页面发一封测试邮件,应该测试成功了。

下一篇讲阿里邮箱配置的天坑

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐