使用PHPMailer发送邮件都是使用未加密的smtp服务器,这次使用的smtp服务器要用ssl(Secure Sockets Layer,安全套接层)方式连接。
好在PHPMailer支持ssl的smtp服务器,网上查了资料,以为改下端口,加上SMTPSecure设置就可以了,但是事实并非如此。
代码中端口改成了465,加了$mail->SMTPSecure = "ssl";设置,结果PHPMailer一直提示不能连接主机。
网上各种查资料,各种咨询,百般折腾后终于找到了原因,PHP没有开启openssl扩展,汗……
windows开启openssl扩展
在php.ini文件中找到;extension=php_openssl.dll,把前边的“分号”去掉,重启一下Apache即可。
linux开启openssl扩展
cd php-5.2.14/ext/openssl/
mv config0.m4 config.m4
phpize
./configure
make
make install
修改php.ini文件, 在适当的位置添加
extension=openssl.so
给php-fpm master进程发一个USR2信号,ssl扩展添加成功。