php服务器不支持smtp,PHPMailer不能连接SMTP服务器的两种常见原因(Could not connect to SMTP host)...

PHPmailer无法发送邮件,提示错误Error: Could not connect to SMTP host

出现这种情况一般有两种原因:

1.无法发出请求,本地设置问题

2.连接被stmp服务器拒绝,可能账号出问题,比如发信量大且频繁

第二种情况比较好解决,换一个登陆账号或者登陆IP就可以了。

针对第一种情况,执行以下脚本测试[CODE_LITE]<?php

$fp = fsockopen("smtp.163.com",25,&$errno,&$errstr,60);

if(! $fp)

echo '$errstr ($errno)
\n ';

else

echo 'ok
\n ';

?>[/CODE_LITE]

如果报错:Warning: fsockopen() has been disabled for security reasons。

说明fsockopen函数被禁用,PHPmailer发送Email依赖此函数。

解决方法参考《fsockopen函数被禁用的解决之道》 ,修改class.smtp.php中的代码

$this->smtp_conn = @fsockopen

$this->smtp_conn = @pfsockopen

即可。

如果报错:php_network_getaddresses: getaddrinfo failed

可能服务器DNS设置问题,导致不能解析域名、从而找不到stmp服务器。也可能服务器所在网络环境屏蔽掉stmp服务器。如果不是自己的机器,暂时没有好的解决方法。

在之前转载的一篇文章 ,将function IsSMTP() {

$this->Mailer = 'smtp';

}

改成:function IsSMTP() {

$this->Mailer = 'SMTP';

}

本文转自@东方天宇个人博客

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值