一个邮件系统对于MediaWiki站点至关重要,为了让站点能够投入使用,前几天研究如何添加邮件功能,基于安全和便捷考虑,咱就是不想在本地设立单独的邮件服务,用了Yandex的据说很坑爹的域名邮箱。由于php默认功能不支持自定义邮件服务器,所以现时邮件功能由$wgSMTP
实现。
由于蓬莱维基的 MediaWiki 1.33 版本内置了$wgSMTP所需的组件,省了很多事,然而服务器在我的配置下为两个版本并存的PHP,用来做站的是PHP7,而默认的为PHP5,因为我没有配置好服务器的共存版本,没法使用compose,以后可能会有麻烦。根据以上的手册并参考了这篇博文进行配置以后,发现提示了这样的错误:authentication failure [SMTP: STARTTLS failed (code: 220, response: TLS go ahead)]
,打开端口也不济事。而在换了465端口以后页面直接崩掉。在验证了自己的邮箱账号和密码没有错误,以及Yandex的邮件服务器确实没有奇奇怪怪的限制以后,咱翻了很多地方,希望找到原因,结果在这里发现了一些蛛丝马迹,同时还有这个,和我一样的报错。不知道为什么PHP无法使用系统的证书文件,我下载了证书文件, 在php.ini中手动添加了一下证书路径,重启了php-fpm,问题解决。
不过现在记起来官方手册里面也给了提示,看来就是证书方面的错误了:
PEAR’s mail will try to use TLS[1] when connecting to the mail server if the server supports it, even if you don’t specify ssl:// in the host. But if the server certificate is not valid (CA[2] not trusted, certificate has expired, CN[3] does not match server name/IP address, etc) it will refuse to work, and instead you’ll get the following error:
PEAR 的 mail 程序在邮件服务器支持TLS的时候会尽量使用TLS连接邮件服务器,即使你没有在主机地址栏指定 ssl:// 。但是如果服务器证书无效(证书不被信任,证书过期,证书常用名与服务器名或者IP不相符之类),程序会拒绝工作,相应地你会得到以下错误提示:authentication failure [SMTP: STARTTLS failed (code: 220, response: begin TLS negotiation)]
You must fix the certificate issues for mail to work.
(略)
你必须修复证书问题,mail才会工作。
© 2019 – 2022, 汀羁旅者. 版权所有,除非另有说明,谢绝转载。
今天弄了SMW和Lilypond之类乱七八糟的玩玩,没想到MediaWiki.org上有那么多皮肤,不过看了一圈有点老了。站点已经换成php7了,xjb编译而已,可能以后又要遭罪了。(^^);;