我尝试从 Discourse Docker 容器内部使用 curl 发送消息。一旦我确保指定了明文 SMTP 和端口 25,我就可以通过主机正常发送电子邮件:
$ cd /var/discourse/
$ sudo ./launcher enter app
x86_64 arch detected.
root@discourse-app:/var/www/discourse# curl smtp://172.17.0.1 --mail-from discourse@mydomain.com --mail-rcpt myname@gmail.com --upload-file README.md
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 7077 0 0 100 7077 0 575k --:--:-- --:--:-- --:--:-- 575k
root@discourse-app:/var/www/discourse#
这是主机电子邮件日志中该测试的样子:
May 24 16:53:49 localhost postfix/smtpd[25494]: connect from discourse-docker[172.17.0.2]
May 24 16:53:49 localhost postfix/smtpd[25494]: EB62CB5FCD: client=discourse-docker[172.17.0.2]
May 24 16:53:49 localhost postfix/cleanup[26008]: EB62CB5FCD: message-id=<>
May 24 16:53:49 localhost opendkim[1365]: EB62CB5FCD: can't determine message sender; accepting
May 24 16:53:49 localhost postfix/smtpd[25494]: disconnect from discourse-docker[172.17.0.2] ehlo=1 mail=1 rcpt=1 data=1 quit=1 commands=5
鉴于我在 app.yml 中指定了无 TLS 和端口 25,并且在昨天重建之前一直有效,这越来越表明最新的 Discourse 正在忽略我在 app.yml 中的 SMTP 配置。