解决WordPress注册收不到邮件的问题

wordpress注册时提示注册完成,但邮箱没有收到注册邮件。重置密码提示: 电子邮件未能发送。可能原因:您的主机禁用了mail()函数。

解决方法

修改wordpress主题目录下的functions.php文件(wp-content/themes/主题目录/functions.php),配置smtp

写入以下代码,将内容自行修改为自己的smtp邮箱

// Customize your functions
function mail_smtp( $phpmailer ){
$phpmailer->From = "Suvan@example.com"; //发件人
$phpmailer->FromName = "Suvan"; //发件人昵称
$phpmailer->Host = "smtp.example.com"; //SMTP服务器地址(比如QQ是smtp.qq.com,腾讯企业邮箱是smtp.exmail.qq.com,其他自行咨询邮件服务商)
$phpmailer->Port = 25; //SMTP端口,常用的有25、465、587,SSL加密连接端口:465或587,qq是25,qq企业邮箱是465
$phpmailer->SMTPSecure = ""; //SMTP加密方式,常用的有ssl/tls,一般25端口不填,端口465天ssl
$phpmailer->Username = "Suvan@example.com"; //邮箱帐号,一般和发件人相同
$phpmailer->Password = ''; //邮箱密码
$phpmailer->IsSMTP(); //使用SMTP发送
$phpmailer->SMTPAuth = true; //启用SMTPAuth服务
}
add_action('phpmailer_init','mail_smtp');

解决发送问题后又遇到个蛋疼的问题,点击激活邮件地址提示您的密码重设链接无效,请在下方请求新链接.原来是wordpress在激活链接前后都加了<>,而邮箱把后面的>当成是链接的一部分了

解决方法为修改目录下的wordpress的wp-login.php以及wp-includes/pluggable.php代码

wp-login.php中找到

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

wp-includes/pluggable.php中找到

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

评论

评论正在提交中...请稍后
评论提交成功...
  1. #1

    数字货币杂志 (2022-06-02 14:20:46) 沙发
    学着尊重每个人每个生物,就如向日葵喜欢面对太阳才会微笑 https://coinzine.news