查看: 91|回复: 0

[教程] 阿里云虚拟主机WordPress无法发送邮件解决方案

[复制链接]

4

主题

0

回帖

0

积分

热心网友

金币
0
阅读权限
220
精华
0
威望
0
贡献
0
在线时间
0 小时
注册时间
2012-2-9
发表于 2023-5-19 00:00:00 | 显示全部楼层 |阅读模式

因阿里云虚拟主机禁用了mail()函数,导致WordPress系统无法使用默认mail()函数发送邮件,即便改用SMTP插件也无法成功发送(因为阿里云虚拟主机提供的是fsockopen,而SMTP所使用的是steam_connect_client),因此想要实现SMTP成功发送邮件,就要修改wordpress程序源文件class-smtp.php,把wordpres的SMTP发送方式改为fsockopen方式。

阿里云虚拟主机WordPress无法发送邮件解决方案

1、登录阿里云主机管理控制台,进入:站点信息-高级环境设置-php.ini设置,PHP函数fsockopen设置:启用

2、修改wordpress系统文件,打开 /wp-includes/class-smtp.php,在274-283 行位置,查找以下代码:

  1. $socket_context = stream_context_create($options); 
  2. //Suppress errors; connection failures are handled at a higher level 
  3. $this->smtp_conn = @stream_socket_client( 
  4.      $host . ":" . $port, 
  5.      $errno, 
  6.      $errstr, 
  7.      $timeout, 
  8.      STREAM_CLIENT_CONNECT, 
  9.      $socket_context 
  10. ); 

替换为以下代码:

  1. $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/

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

相关侵权、举报、投诉及建议等,请发 E-mail:qiongdian@foxmail.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部