如果我不需要任何高级功能,那么我就不需要使用 POSTCONF_smtpd_tls... 变量,对吗?
网站当然是 https。
如果我不需要任何高级功能,那么我就不需要使用 POSTCONF_smtpd_tls... 变量,对吗?
网站当然是 https。
您将不需要上述变体,但仍需要 samples/mail-receiver.yml 中的 TLS 配置,并针对您的域名进行修改,以支持 TLS 加密。
假设您使用的是 Let’s Encrypt 模板进行 https,只需取消示例中的行注释,并替换域名即可。
嗯,那有什么想法为什么它最近停止工作了,显示这个关于证书的错误?
<19>Oct 6 19:18:27 receive-mail[94]: Failed to POST the e-mail to https://www..../admin/email/handle_mail:
SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B:
certificate verify failed (OpenSSL::SSL::SSLError)
<19>Oct 6 19:18:27 receive-mail[94]: /usr/local/lib/ruby/2.3.0/net/protocol.rb:44:in `connect_nonblock'
/usr/local/lib/ruby/2.3.0/net/protocol.rb:44:in `ssl_socket_connect'
/usr/local/lib/ruby/2.3.0/net/http.rb:928:in `connect'
/usr/local/lib/ruby/2.3.0/net/http.rb:863:in `do_start'
/usr/local/lib/ruby/2.3.0/net/http.rb:852:in `start'
/usr/local/lib/ruby/2.3.0/net/http.rb:1384:in `request'
/usr/local/lib/ruby/site_ruby/mail_receiver/discourse_mail_receiver.rb:42:in `process'
错误显示它已收到电子邮件,并且在尝试连接到 Discourse 实例时无法验证证书。这告诉我们问题不在于其他东西连接到您的邮件接收器,但不一定意味着 TLS 有效。(电子邮件可能是在没有 TLS 的情况下发送的)
仅凭这一点很难判断可能发生了什么,但如果您在浏览器中访问 https://www....(域名与错误消息中显示的完全相同),它是否能成功连接?
如果可以,这可能表明您的邮件接收器因某种原因不信任它。
如果不能,这可能表明 app.yml 中的 SSL 设置有问题(例如,仅为 example.com 获取证书,而不是 www.example.com),或者 mail-receiver.yml 中的 Discourse URL 有问题(例如,使用了 www.example.com 而实际上应该是 example.com)。
如果您能提供主机名,我们将能提供更多帮助。
您是否更改了网站的域名?证书在网站上是否正确?
在过去 90 天内,网站是否还有其他更改?
好的,该证书完全没问题。
请详细介绍一下连接到您论坛的邮件服务器。它是一个常规的邮件接收器 Docker 容器吗?
我用 //email/testTo: 检查过了;如果你想自己看看,这是个测试方法。
正如 Richard 所建议的,问题似乎不在于 Discourse 邮件接收器。
如果它从去年 11 月开始,那几乎可以肯定是 Let’s Encrypt 根证书过期了。你只需要拉取新镜像并重新构建即可。
不,我认为问题出在邮件接收器和 Discourse 之间。
Discourse 是公开的,所以我能够检查 Discourse 的证书,并看到它是没问题的。
所以我的怀疑是问题出在邮件接收器端。
这听起来很有可能!
同意,但 Simon 的解释可能解释了连接到邮件接收方的任何问题的根源。
编辑:如果问题可能从去年 11 月开始,但直到最近才被注意到。
…
Alex 在他的一个回复中纠正了开始时间:
啊,是的,更新修复了 SSL 错误。
但之后它收到了 404 响应。创建新的 API 密钥解决了这个问题。
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.