PHPMailer配置ssl连接smtp服务器失败的解决方案

 公司之前一直用没加密的smtp服务,上周突然要求全部换成ssl的连接方式,强制停止了不使用ssl的smtp服务,导致了原本很多使用smtp的程序不能正常工作。

有一个程序原来是用PHPMailer来发邮件的,好在PHPMailer支持ssl的smtp,我以为改下端口,加下SMTPSecure设置就可以了。事实当然没那么简单,加了下面这句代码后PHPMailer一直提示不能连接到主机。
$mail->SMTPSecure = "ssl";
查看了一下smtp类建立连接的方法才知道是调用了fsockopen这个函数来建立ssl连接的。但是我的测试机上没装PHP的openssl扩展,fsockopen不能识别ssl://这个头。为php添加openssl的扩展即可。
 

cd php-5.2.14/ext/openssl/

mv config0.m4 config.m4

phpize

./configure

make

make install

 

修改php.ini文件, 在适当的位置添加

extension=openssl.so #来自www.zeroplace.cn

 

给php-fpm master进程发一个USR2信号,ssl扩展添加成功。



文章来自: 本站原创
Tags:
评论: 0 | 查看次数: 14081