!
也想出现在这里? 联系我们
广告位
当前位置:首页>技术分享>网站运维>解决虚拟主机发信设置中“SMTP connect() failed”的错误

解决虚拟主机发信设置中“SMTP connect() failed”的错误

今天早晨在测试插件的时候需要发送邮件,突然发现自己网站的邮件发送服务报错,具体报错内容如下:

目前站点所使用得到是阿里云的独享虚拟主机,由于国内虚拟主机大多禁用了 mail() 函数,之前一直使用 WP Mail SMTP 配置wp_mail()函数用SMTP发送邮件的,而且之前一直发送正常。最近两天开始使用我爱水煮鱼 WPJAM Basic 插件的发信设置功能来实现邮件的发送,就想是不是插件的问题,停用了 WPJAM Basic 重新启用 WP Mail SMTP 还是失败,怀疑是不是最近几天测试插件、删减数据表等的原因,停用所有插件,更换主题,恢复数据表,重新配置邮件SMTP服务密码……一点点的排查发现都不是。

解决虚拟主机发信设置中“SMTP connect() failed”的错误

无奈只能去网上搜索答案,然而网上的答案都大同小异,没有什么实际的解决方案,只能自己再慢慢想办法了,登录阿里云后台,突然想起来之前修改过PHP的版本,是不是PHP版本的问题?将后台的所有PHP版本切换了一遍一一测试发现都不行,测试的过程中突然想起来之前更换PHP版本的时候把 php.ini 的参数修改了一下,查看 php.ini 参数设置,大哭,瞬间明白了,自己把 fsockopen 函数禁用了,重新启用,再次测试邮件发送设置,一切正常。

最后奉上 fsockopen 的一些知识点以供学习理解:

fsockopen用于打开网络的 Socket 链接。而Socket 是用于建立网络通信连接的一对端口号。socket本质是编程接口(API),对TCP/IP的封装,TCP/IP也要提供可供程序员做网络开发所用的接口。

fsockopen语法:

int fsockopen(string hostname, int port, int [errno], string [errstr], int [timeout]);

hostname:主机名称;port:端口号;errno:错误号的接受变量;errstr:错误提示的接受变量;timeout:超时时间。

Socket函数原型:

int socket(int domain, int type, int protocol);

domain:协议域,又称协议族;type:指定Socket类型;protocol:指定协议。

给TA打赏
共{{data.count}}人
人已打赏
网站运维

WordPress 后台管理面板中文乱码排查解决

2022-9-15 12:33:32

网站运维

WordPress通过自定义代码小工具实现圆角彩色标签云(wordpress原创标签插件)

2022-9-15 14:30:46

声明 本站上的部份代码及教程来源于互联网,仅供网友学习交流,若您喜欢本文可附上原文链接随意转载。无意侵害您的权益,请发送邮件至 admin@s9h.cn 或点击右侧 私信:少羽 反馈,我们将尽快处理。
0 条回复A文章作者M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索