技术思绪摘录旅行
当我测试找回密码的功能的时候,发现提示发送失败,原因可能是你的服务器禁用了mail()方法。本来想修复,最后想了下,算了,直接简单粗暴的替换掉他的发送方法,用我们自己的方法,去调用别人的smtp服务器来完成发送操作。将以下代码放在主题文件夹里面的functions.php里面保存即可

当我测试找回密码的功能的时候,发现提示发送失败,原因可能是你的服务器禁用了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";

说白了就是去掉了两头的尖括号。

 

这时候完美修复了发送邮件和找回密码功能,注册时发送的邮件也有问题,改法一样,位置不在这个文件里面,就不在这里说了。


CarsonIT 微信扫码关注公众号 策略、创意、技术

留下您的脚步

 

最近评论

查看更多>>

精选推荐

阅读排行

友情打赏

请打开您的微信,扫一扫