当我测试找回密码的功能的时候,发现提示发送失败,原因可能是你的服务器禁用了mail()方法。
本来想修复,最后想了下,算了,直接简单粗暴的替换掉他的发送方法,用我们自己的方法,去调用别人的smtp服务器来完成发送操作。将以下代码放在主题文件夹里面的functions.php里面保存即可
//很多邮件发送服务商都可以设置,我这里以网易邮箱为例 //SMTP邮箱设置 function mail_smtp( $phpmailer ){ $phpmailer->From = “15828582846@163.com”;//发件人地址 $phpmailer->FromName = “CarsonYang”;//发件人昵称 $phpmailer->Host = “smtp.163.com”;//SMTP服务器地址 $phpmailer->Port = “25”; //SMTP邮件发送端口, 常用端口有:25、465、587, 具体联系邮件服务商 $phpmailer->SMTPSecure = “25”; //SMTP加密方式(SSL/TLS)没有为空即可, //具体联系邮件服务商, 以免设置错误, 无法正常发送邮件 $phpmailer->Username = “15828582846@163.com”;//邮箱帐号 $phpmailer->Password = “***密码****”;//邮箱密码 $phpmailer->IsSMTP(); $phpmailer->SMTPAuth = true;//启用SMTPAuth服务 } add_action(‘phpmailer_init’,’mail_smtp’);
这时候可以发邮件了,但是找回密码的功能仍然没有修复,因为官方的发送内容里面多了个尖括号导致找回密码的链接错误,官方的目的是为了解决这个问题,但是中文版出了这个幺蛾子,也一直没修复,以下是找到原来的位置将其修改为正确的代码。
找到这个文件 /wp-login.php 找到这个文件
找到这个文件的这一句:
$message = __('Someone has requested a password reset for the following account:') . "\r\n\r\n";
以上这句就是发送邮件的开始内容,问题出在最后一句,将最后一句改为:
$message .= network_site_url("wp-login.php?action=rp&key=$key&login=" . rawurlencode($user_login), 'login')."\r\n";
说白了就是去掉了两头的尖括号。
这时候完美修复了发送邮件和找回密码功能,注册时发送的邮件也有问题,改法一样,位置不在这个文件里面,就不在这里说了。
留下您的脚步
最近评论