用phpmailer发送邮件提示SMTP Error: Could not …
2018-06-22 05:25:39来源:未知 阅读 ()
之前做项目的时候做了一个用phpmailer发送邮件的功能《CI框架结合PHPmailer发送邮件》,昨天步署上线(刚开始用新浪云,嫌贵,换成阿里了),测试的时候,发送邮件却意外报错了..........
我擦,没上线的时候好好的,次次成功,刚开始我以为是smtp地址的问题(我用的163邮箱),后来改成了QQ邮箱,发现还是没有用,没办法,只好问度娘了,后来看着百度上的答案才明白除了google的smtp服务器收到请求"smtp"会接受,其他的服务器就像我用的163,QQ什么的必须要收到大写的 "smtp"请求才行..........emmmmm.....
然后我在class.phpmailer.php中,将
1 public function IsSMTP() { 2 $this->Mailer = 'smtp'; 3 } 4 5 //改成 6 public function IsSMTP() { 7 $this->Mailer = 'SMTP'; 8 }
然后将:
1 switch($this->Mailer) { 2 case 'sendmail': 3 return $this->SendmailSend($header, $body); 4 case 'smtp': 5 return $this->SmtpSend($header, $body); 6 default: 7 return $this->MailSend($header, $body); 8 } 9 10 11 //改成 12 switch($this->Mailer) { 13 case 'sendmail': 14 return $this->SendmailSend($header, $body); 15 case 'SMTP': 16 return $this->SmtpSend($header, $body); 17 default: 18 return $this->MailSend($header, $body); 19 }
我本来以为这样就可以了,重启Apache,再次测试一下,结果第一个错误是解决了,又出现了一个报错:
Could not instantiate mail function
?????
不知道你们有没有出现,我运气差,只好又求助度娘,终于找到原因:有的虚拟主机,或服务器,为了安全起见屏蔽了“fsockopen()函数”导致无法发送邮件。
下面说一下解决办法:
首先,在php.ini中去掉下面的两个分号
;extension=php_sockets.dll
;extension=php_openssl.dll
之前我用PHPmailer的时候已经去掉了,这里仅仅提示一下。
然后替换fsockopen函数
将class.smtp.php文件中fsockopen函数换成pfsockopen函数:
1 $this->smtp_conn = @fsockopen($host, // the host of the server 2 $port, // the port to use 3 $errno, // error number if any 4 $errstr, // error message if any 5 $tval); // give up after ? secs 6 7 8 //fsockopen改为: 9 $this->smtp_conn = @pfsockopen($host, // the host of the server 10 $port, // the port to use 11 $errno, // error number if any 12 $errstr, // error message if any 13 $tval); // give up after ? secs
这样设置完,我的已经可以成功发送邮件了,如果同样有这方面问题的,可以参考上面的例子试一下。
本文属原创内容,为了尊重他人劳动,转载请注明本文地址:
http://www.cnblogs.com/luokakale/p/7302373.html
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:git命令
下一篇:TP3.2二级导航与高亮显示
- Laravel 中 “规范” 的开发短信验证码发送功能 2020-02-08
- php调用云片网接口发送短信的实现方法 2019-12-14
- php邮件发送的两种方式 2019-11-30
- PHPMailer的主要功能特点和简单使用说明 2019-10-12
- 详析php发送post请求的方法 2019-10-09
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash