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


Posted in PHP onJuly 08, 2014

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 年龄计算函数(精确到天)
Jun 07 PHP
基于PHP静态类的原罪详解
May 06 PHP
PHP Class&Object -- PHP 自排序二叉树的深入解析
Jun 25 PHP
ajax返回值中有回车换行、空格的解决方法分享
Oct 24 PHP
php判断并删除空目录及空子目录的方法
Feb 11 PHP
Yii学习总结之数据访问对象 (DAO)
Feb 22 PHP
PHP获取文件夹大小函数用法实例
Jul 01 PHP
PHP设置进度条的方法
Jul 08 PHP
zend framework中使用memcache的方法
Mar 04 PHP
php 变量引用与变量销毁机制详细介绍
Dec 05 PHP
php使用str_replace替换多维数组的实现方法分析
Jun 15 PHP
laravel Task Scheduling(任务调度)在windows下的使用详解
Oct 22 PHP
php去掉URL网址中带有PHPSESSID的配置方法
Jul 08 #PHP
PHP大批量插入数据库的3种方法和速度对比
Jul 08 #PHP
php发送get、post请求的6种方法简明总结
Jul 08 #PHP
PHP中对各种加密算法、Hash算法的速度测试对比代码
Jul 08 #PHP
微信公众平台天气预报功能开发
Jul 06 #PHP
最常用的8款PHP调试工具
Jul 06 #PHP
一个不易被发现的PHP后门代码解析
Jul 05 #PHP
You might like
用PHP伪造referer突破网盘禁止外连的代码
2008/06/15 PHP
file_get_contents获取不到网页内容的解决方法
2013/03/07 PHP
php实现对象克隆的方法
2015/06/20 PHP
Yii2创建多界面主题(Theme)的方法
2016/10/08 PHP
PHP7内核之Reference详解
2019/03/14 PHP
php实现商城购物车的思路和源码分析
2020/07/23 PHP
setAttribute 与 class冲突解决
2008/02/17 Javascript
Dom加载让图片加载完再执行的脚本代码
2008/05/15 Javascript
在线编辑器中换行与内容自动提取
2009/04/24 Javascript
强大的jquery插件jqeuryUI做网页对话框效果!简单
2011/04/14 Javascript
分享14个很酷的jQuery导航菜单插件
2011/04/25 Javascript
jQuery-Easyui 1.2 实现多层菜单效果的代码
2012/01/13 Javascript
JS中不为人知的五种声明Number的方式简要概述
2013/02/22 Javascript
javascript中caller和callee详解
2015/08/10 Javascript
JS实现超精简响应鼠标显示二级菜单代码
2015/09/12 Javascript
jQuery EasyUI之DataGrid使用实例详解
2016/01/04 Javascript
HTML5 JS压缩图片并获取图片BASE64编码上传
2020/11/16 Javascript
JavaScript实现简单评论功能
2017/08/17 Javascript
JS实现的找零张数最小问题示例
2017/11/28 Javascript
JS实现图片转换成base64的各种应用场景实例分析
2018/06/22 Javascript
LayUi数据表格自定义赋值方式
2019/10/26 Javascript
python中实现字符串翻转的方法
2018/07/11 Python
对Python subprocess.Popen子进程管道阻塞详解
2018/10/29 Python
python实现移位加密和解密
2019/03/22 Python
学Python 3的理由和必要性
2019/11/19 Python
突袭HTML5之Javascript API扩展3—本地存储全新体验
2013/01/31 HTML / CSS
详解如何用HTML5 Canvas API控制图片的缩放变换
2016/03/22 HTML / CSS
TIME时代杂志台湾总代理:台时亚洲
2018/10/22 全球购物
给老婆的保证书范文
2014/04/28 职场文书
办公室主任竞聘演讲稿
2014/05/15 职场文书
大二学年个人总结
2015/03/03 职场文书
大学自主招生自荐信(2016精选篇)
2016/01/28 职场文书
详解Java实践之适配器模式
2021/06/18 Java/Android
Win11怎么启动任务管理器?Win11启动任务管理器的几种方法
2021/11/23 数码科技
攻击最高的10只幽灵系神奇宝贝,坚盾剑怪排第一,第五最为可怕
2022/03/18 日漫
MySQL中rank() over、dense_rank() over、row_number() over用法介绍
2022/03/23 MySQL