1.wordpress注册时提示注册完成,但邮箱没有收到注册邮件。
2.使用插件配置好邮件发送设置后,用户重置密码时提示: 电子邮件未能发送,可能原因:您的主机禁用了mail()函数。
3.重置密码正常能收到邮件后手机端能正常修改密码了,发现PC端收到邮件点击修改提示链接后显示:您的密码重设链接无效,请在下方请求新链接。
第一种问题解决方法
修改wordpress主题目录下的functions.php文件(wp-content/themes/主题吗/functions.php),配置smtp
写入以下代码,将内容自行修改为自己的smtp邮箱
- // Customize your functions
- function mail_smtp( $phpmailer ){
- $phpmailer->From = “user@example.com”; //发件人
- $phpmailer->FromName = “测试”; //发件人昵称
- $phpmailer->Host = “smtp.example.com”; //SMTP服务器地址(比如QQ是smtp.qq.com,腾讯企业邮箱是smtp.exmail.qq.com,阿里云是smtp.域名,其他自行咨询邮件服务商)
- $phpmailer->Port = 25; //SMTP端口,常用的有25、465、587,SSL加密连接端口:465或587,qq是25,qq企业邮箱是465
- $phpmailer->SMTPSecure = “”; //SMTP加密方式,常用的有ssl/tls,一般25端口不填,端口465 ssl加密
- $phpmailer->Username = “user@example.com”; //邮箱帐号,一般和发件人相同
- $phpmailer->Password = ”; //邮箱密码
- $phpmailer->IsSMTP(); //使用SMTP发送
- $phpmailer->SMTPAuth = true; //启用SMTPAuth服务
- }
- add_action(‘phpmailer_init’,’mail_smtp’);
解决了前面两个问题后又遇到第3个蛋疼的问题,发现原来是显的没事的wordpress在激活链接前后都加了<>,而邮箱把后面的>当成是链接的一部分了,现象如下图:
解决方法为修改目录下的wordpress的wp-login.php以及wp-includes/pluggable.php代码
wp-login.php中找到(大概在369行)
- $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中找到(大概在1899行)
- $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”;
关于邮件发送也可使用插件Easy WP SMTP或WP Mail SMTP解决,具体设置方法请百度或联系菜心哥吧!