本文主要是介绍记php升级到5.6及以上版本给phpmailer留的坑,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
没想到居然还能在php底下挂一篇,哦哈哈哈哈。但是这篇基本不会有什么要coding。
背景是发现https的网站上发邮件居然不管用了。报的最初错误是,无法连接到smtp服务器。
根据逻辑,先走telnet 和 证书验证查询,都没毛病(这里瞎举例一下口令
"telnet smtp.xx.com 777" and “echo QUIT | openssl s_client -connect smtp.xx.com:777"
)。端口对应加密方式,也没毛病ssl->465, tls->587,木有加密走25。但,就是发不出!
然后看到了下面这段话,老泪纵横。
"Starting from version 5.6, PHP always verifies certificate if TLS is used. Since a self-signed certificate is used on the server, the certificate verification by PHP gets failed. Certificate used to protect mail server does not correspond with the greeting message of Mail Transport Agent."
Directly quoted from https://support.plesk.com/hc/en-us/articles/115003022854--Troubleshooting-WordPress-Website-with-PHPMailer-or-SMTP-extension-cannot-send-mail-Failed-to-connect-to-server-0-SMTP-connect-failed
然后想说EASY xxx插件比WP SMTP Mail(这个插件就提示多算个优点吧)那个插件好。好吧,这个好一点的插件的名字,我也没记完整,总之有个EASY在里面。
EASY毕竟本地密码还有个加密选项,自我签发证书的验证有跳过选项。
最后的最后,提醒,其实邮件加密可以去wp-include/class-phpmailer.php里面hard code。
这篇关于记php升级到5.6及以上版本给phpmailer留的坑的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!