DISCOURSE_SMTP_AUTHENTICATION 设置被忽略

我部署了一个自托管的 Discourse 实例,并使用 socketlabs.com 作为 SMTP 服务器(他们有一个免费计划,每月 40000 封邮件)。无论我尝试哪种认证协议,都无法让邮件正常工作。

我通过修改 lib/tasks/emails.rake 文件解决了这个问题,具体修改如下:

将这一行:
Net::SMTP.start(smtp[:address], smtp[:port], 'localhost', smtp[:user_name], smtp[:password])

修改为:
Net::SMTP.start(smtp[:address], smtp[:port], 'localhost', smtp[:user_name], smtp[:password], smtp[:authentication])

如果不设置此项,底层的 SMTP 代码似乎会回退到默认的 ‘plain’ 认证方式。

那只是第一个月的优惠。之后是每月 40 美元。

不过,在我看来,这似乎是一个真实的 bug。我认为,它只影响这个仅用于测试的 rake 任务。