phpmailer在服务器上不能正常发送邮件的解决办法

2015-01-24信息快讯网

这篇文章主要介绍了phpmailer在服务器上不能正常发送邮件的解决办法,本文的原因是服务器的安全设置造成,服务器中屏蔽fsockopen函数的使用权限,所以导致发送失败,需要的朋友可以参考下

phpmailer本身是一个很不错的开源邮件类,也非常的易用简单,就是偶尔会出现程序上传到服务器上不能发送邮件的情况,在之前也有同学问过我这个问题,当时的时候总是不以为然,今天终于让我碰上了,用phpmailer 在本地测试正常,上传到服务器上就不行了,当然了是用的SMTP方式,最终确定是fsockopen 函数惹的祸,因为安全原因fsockopen 和pfsockopen 经常被服务器端关闭。解决方法如下:

而代之的应该是 stream_socket_client()函数,不过他的参数有一点不一样。

应这样更改phpmailer 的 class.stmp.php文件:

$this->smtp_conn = @fsockopen( $host,  // the host of the server
                 $port,  // the port to use
                 $errno,  // error number if any
                 $errstr, // error message if any
                 $tval);  // give up after ? secs

改为

$this->smtp_conn = @stream_socket_client( $host.':'.$port,  // the host of the server
                 $errno,  // error number if any
                 $errstr, // error message if any
                 $tval);  // give up after ? secs

这里 PHP版本应高于 5.0 的,因为较早版本没有stream_socket_client()函数的。
OK ,问题解决了。

php强制运行广告的方法
PHP过滤黑名单关键字的方法
php中print(),print_r(),echo()的区别详解
PHP中__FILE__、dirname与basename用法实例分析
php 删除cookie方法详解
Codeigniter购物车类不能添加中文的解决方法
PHP实现将HTML5中Canvas图像保存到服务器的方法
PHP使用get_headers函数判断远程文件是否存在的方法
PHP获取服务器端信息的方法
浅析php适配器模式(Adapter)
thinkphp使用phpmailer发送邮件的方法
php中convert_uuencode()与convert_uuencode函数用法实例
PHP多个文件上传到服务器实例
使用PHPMailer实现邮件发送代码分享
PHP邮件发送类PHPMailer用法实例详解
phpmailer发送邮件之后,返回收件人是否阅读了邮件的方法
PHP中的插件机制原理和实例
php去掉URL网址中带有PHPSESSID的配置方法
PHP大批量插入数据库的3种方法和速度对比
php发送get、post请求的6种方法简明总结
PHP中对各种加密算法、Hash算法的速度测试对比代码
最常用的8款PHP调试工具
CodeIgniter实现更改view文件夹路径的方法
php socket客户端及服务器端应用实例
CodeIgniter安全相关设置汇总
PHPMailer发送HTML内容、带附件的邮件实例
PHP使用GIFEncoder类处理gif图片实例
PHP使用GIFEncoder类生成gif动态滚动字幕
destoon网站转移服务器后搜索汉字出现乱码的解决方法
单台服务器的PHP进程之间实现共享内存的方法
PHP实例分享判断客户端是否使用代理服务器及其匿名级别
分享一段php获取linux服务器状态的代码
phpmailer中文乱码问题的解决方法
PHPMailer的主要功能特点和简单使用说明
©2014-2024 dbsqp.com