在生产环境的 Discourse 日志中进行常规检查时,我注意到 Poll Mailbox 任务因以下错误而失败:
任务异常:SSL_connect returned=1 errno=0 state=error: certificate verify failed (self signed certificate)
一些相关说明:
- 该实例是在 Digital Ocean 上部署的标准 Discourse 安装,使用了 LetsEncrypt 证书。服务器上未部署其他服务。
- POP3 邮件导入功能在此实例上已稳定运行数月,未出现任何问题。
- Gmail 端未显示任何异常(例如可疑登录等)。
这里有一个相关话题提到了相同的错误,但似乎该话题讨论的是实际使用了自签名证书的安装:https://meta.discourse.org/t/reply-by-email-ssl-self-signed-certificate-error/30868。
相关的站点设置如下:
pop3 polling enabled: true
pop3 polling ssl: true
pop3 polling openssl verify: true
pop3 polling period mins: 5
pop3 polling host: pop.gmail.com
pop3 polling port: 995
pop3 polling username: // 一个 Gmail 用户名
pop3 polling password: // 一个 Gmail 密码
pop3 polling delete from server: true
我最初尝试切换 pop3 polling enabled 设置,但没有任何效果(也未返回错误)。我还重新构建了容器。最后,我将 pop3 polling openssl verify 改为 false,Poll Mailbox 任务随即恢复正常运行。
目前我尚不确定具体原因,但先在此报告该问题。
另外,如果 Poll Mailbox 任务失败,最好在管理员界面中记录日志,因为这种“静默”失败以及邮件导入失败可能会引发一些问题。