因阿里云虚拟主机禁用了mail()函数,导致WordPress系统无法使用默认mail()函数发送邮件,即便改用SMTP插件也无法成功发送(因为阿里云虚拟主机提供的是fsockopen,而SMTP所使用的是steam_connect_client),因此想要实现SMTP成功发送邮件,就要修改wordpress程序源文件class-smtp.php,把wordpres的SMTP发送方式改为fsockopen方式。
1、登录阿里云主机管理控制台,进入:站点信息-高级环境设置-php.ini设置,PHP函数fsockopen设置:启用
2、修改wordpress系统文件,打开 /wp-includes/class-smtp.php,在274-283 行位置,查找以下代码:
$socket_context = stream_context_create($options);
//Suppress errors; connection failures are handled at a higher level
$this->smtp_conn = @stream_socket_client(
$host . “:” . $port,
$errno,
$errstr,
$timeout,
STREAM_CLIENT_CONNECT,
$socket_context
);
替换为以下代码:
$this->smtp_conn = @fsockopen($host,$port,$errno,$errstr,$timeout);
然后使用Easy WP SMTP或 WP MAIL SMTP 这类 SMTP 发送邮件的插件,配置好一般就可以了。
特别注意:由于这个方法是直接修改了 WordPress 的核心代码,一旦升级了 WordPress 版本,就需要重新进行修改,切记!!!
原文地址:https://www.themebest.com/aliyun-mail-failure/
声明: 猿站网有关资源均来自网络搜集与网友提供,任何涉及商业盈利目的的均不得使用,否则产生的一切后果将由您自己承担! 本平台资源仅供个人学习交流、测试使用 所有内容请在下载后24小时内删除,制止非法恶意传播,不对任何下载或转载者造成的危害负任何法律责任!也请大家支持、购置正版! 。本站一律禁止以任何方式发布或转载任何违法的相关信息访客发现请向站长举报,会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。本网站的资源部分来源于网络,如有侵权烦请发送邮件至:2697268773@qq.com进行处理。