开发者社区> 问答> 正文

php发送邮件 报错smtp error:could not authenticate

centos7 系统
php发送邮件 报错smtp error:could not authenticate

@fsockopen我使用这个方法链接smtp
我看了下 /etc/php.ini发现没有
;extension=php_sockets.dll
;extension=php_openssl.dll这两行

请问大神 这是什么原因 是我少配置了什么么?

展开
收起
sunny.gao 2017-08-30 15:09:29 8714 0
2 条回答
写回答
取消 提交回答
  • 请问http://pecl.php.net/我倒这下载什么东西

    2019-07-17 21:32:49
    赞同 展开评论 打赏
  • 现任杭州懒猪行CTO,曾任某知名网络安全企业高级产品经理,具有多年的互联网产品的设计和开发经验。

    方法1:将fsockopen函数替换成pfsockopen函数

    首先,在php.ini中去掉下面的两个分号

    ;extension=php_sockets.dll
    ;extension=php_openssl.dll
    然后重启一下,没有的话可以去http://pecl.php.net/下载。

    因为pfsockopen的参数与fsockopen基本一致,所以只需要将@fsockopen替换成@pfsockopen就可以了。

    方法2:使用stream_socket_client函数

    一般fsockopen()被禁,pfsockopen也有可能被禁,所以这里介绍另一个函数stream_socket_client()。

    stream_socket_client的参数与fsockopen有所不同,所以代码要修改为:

    代码如下 复制代码

    $this->smtp_conn = stream_socket_client("tcp://".$host.":".$port, $errno, $errstr, $tval);
    这样就可以了。

    2019-07-17 21:32:49
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
PHP安全开发:从白帽角度做安全 立即下载
PHP 2017.北京 全球开发者大会——高可用的PHP 立即下载
复杂PHP系统性能瓶颈排查及优化 立即下载