关于在阿里云弹性web上wordpress密码重置问题

来源:前阵子合并之前的两个wordpress网站,想用两个用户区分下,建了新用户无法修改密码,只能生成,就想着利用密码重置来更新密码。

问题1:由于博客托管在阿里云弹性web上,在重置密码时,始终提示错误【具体是啥忘了】,就是发不出密码重置邮件。
解决方案:方法涉及修改wordpress代码,升级后需重新修改。
1、打开/wp-includes/class-smtp.php,查找到如下代码【我的wordpress版本在276-283行,其他版本也就在附近】

$this->smtp_conn = @stream_socket_client(
	$host . ":" . $port,
	$errno,
	$errstr,
	$timeout,
	STREAM_CLIENT_CONNECT,
	$socket_context
);

2、将其修改为如下代码:

$this->smtp_conn = @fsockopen($host,$port,$errno,$errstr,$timeout);

3、安装WP SMTP插件,配置发件人信息【之前还看到直接在步骤2的基础上改代码的-没生效】——此插件很久没有更新了,有类似的都可以试试。

问题2:解决问题1后,遇上另一个问题,每次重置密码的链接打开后,都会提示无效;
原因:每次密码重置的链接首尾都带有<>。
解决方案:修改wordpress根目录wp-login.php文件
1、打开wp-login.php文件,查找如下代码,在340行左右【不同版本有所差别,上下找下】

$message .= '<' . network_site_url("wp-login.php?action=rp&key=$key&login=" . rawurlencode($user_login), 'login') . ">\r\n";

2、去掉首尾<>,代码如下:

$message .= network_site_url("wp-login.php?action=rp&key=$key&login=" . rawurlencode($user_login), 'login');

完成上面的部分后,终于可以正确的重设密码了。

参考链接:
解决万网主机下 WordPress 无法发送邮件的问题
WordPress 密码重置提示 您的密码重设链接无效,请在下方请求新链接 解决方案

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*