用phpmailer发送邮件提示SMTP Error: Could not connect to SMTP host解决办法
之前做项目的时候做了一个用phpmailer发送邮件的功能《CI框架结合PHPmailer发送邮件》,昨天步署上线(刚开始用新浪云,嫌贵,换成阿里了),测试的时候,发送邮件却意外报错了..........
我擦,没上线的时候好好的,次次成功,刚开始我以为是smtp地址的问题(我用的163邮箱),后来改成了QQ邮箱,发现还是没有用,没办法,只好问度娘了,后来看着百度上的答案才明白除了google的smtp服务器收到请求"smtp"会接受,其他的服务器就像我用的163,QQ什么的必须要收到大写的 "smtp"请求才行..........emmmmm.....
然后我在class.phpmailer.php中,将
public function IsSMTP() {
$this->Mailer = 'smtp';
} //改成
public function IsSMTP() {
$this->Mailer = 'SMTP';
}
然后将:
switch($this->Mailer) {
case 'sendmail':
return $this->SendmailSend($header, $body);
case 'smtp':
return $this->SmtpSend($header, $body);
default:
return $this->MailSend($header, $body);
} //改成
switch($this->Mailer) {
case 'sendmail':
return $this->SendmailSend($header, $body);
case 'SMTP':
return $this->SmtpSend($header, $body);
default:
return $this->MailSend($header, $body);
}
我本来以为这样就可以了,重启Apache,再次测试一下,结果第一个错误是解决了,又出现了一个报错:
Could not instantiate mail function
?????
不知道你们有没有出现,我运气差,只好又求助度娘,终于找到原因:有的虚拟主机,或服务器,为了安全起见屏蔽了“fsockopen()函数”导致无法发送邮件。
下面说一下解决办法:
首先,在php.ini中去掉下面的两个分号
;extension=php_sockets.dll
;extension=php_openssl.dll
之前我用PHPmailer的时候已经去掉了,这里仅仅提示一下。
然后替换fsockopen函数
将class.smtp.php文件中fsockopen函数换成pfsockopen函数:
$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 //fsockopen改为:
$this->smtp_conn = @pfsockopen($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
这样设置完,我的已经可以成功发送邮件了,如果同样有这方面问题的,可以参考上面的例子试一下。
本文属原创内容,为了尊重他人劳动,转载请注明本文地址:
http://www.cnblogs.com/luokakale/p/7302373.html
最新文章
- Oracle通过一个Value值查询数据库
- 【bzoj1407】 Noi2002—Savage
- 【HDU】4089 Activation
- Python开发入门与实战10-事务
- CyclicBarrier原理
- (转)HTML5开发学习(3):本地存储之Web Sql Database
- 【原创】CHROME 最小字体限制为12PX的终极解决方案
- 使用highcharts 绘制Web图表
- 第k大值01背包问题
- EnumMap demo
- Hibernate各保存方法之间的差 (save,persist,update,saveOrUpdte,merge,flush,lock)等一下
- Java基础总结--数组
- socket之解决粘包方法
- Python之面向对象一
- spring reference
- turnserver 配置说明记录
- android 通过页面上关键字快速定位代码
- PHP filter 函数FILTER_CALLBACK 过滤数据
- BZOJ4066 简单题(KD-Tree)
- Altium Designer 13 插件安装
热门文章
- windows环境中利用NMake工具编译连接C++源代码
- 349B - C. Mafia
- empty()和remove()的区别
- ligerUI---ligerGrid中treegrid(表格树)的使用
- [译]ASP.NET Core 2.0 视图组件
- 【Kafka源码】KafkaController启动过程
- ueditor插入百度音乐无法播放-403 问题
- 第一章 Linux系统介绍与环境搭建准备
- Nginx服务及编译安装
- c#把汉字转化成全拼音函数(全拼)