WordPress安装WP SMTP插件发送邮件

WordPress网站自带发送邮件功能,使用的是PHP的mail()函数的方式,用这种方式发送邮件,要么邮件根本就发不出去,虚拟主机不支持,禁止使用mail()函数;要么发出去了,连收件人的垃圾箱都进不了,直接被系统拦截。所以,我们需要一款通过SMTP方法发送邮件的插件,来代替WordPress使用的mail()函数。

那么什么是通过SMTP方法发送邮件呢?

所谓用SMTP方式发邮件,就是使用公网的邮箱,通过远程的方式(SMTP)协议,发送邮件给对方。比如你有一个QQ邮箱,你就可以在WP Mail SMTP插件中进行一些设置,设置成功之后,你的网站发送邮件,就是远程通过你的QQ邮箱来发送的。通过SMTP方式发送邮件,发送成功率会很高。

下图是WP SMTP插件的配置说明:(WordPress版本4.9.5

WordPress用户注册时击邮件中的重置密码链接提示“您的密码重设链接无效”

在邮箱收到邮件后,会将密码重置链接地址及其前后的“<>”一起当成链接地址生成超链接,点击此超链接后,由于传给wordpress的参数不对(多了个>),所以WordPress提示密码重设链接无效。

打开WP安装目录下的/wp-includes/pluggable.php,找到如下代码(1896行左右)

$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”;

同时补充 解决找回密码时提示“您的密码重设链接无效”:

打开WP根目录下的 wp-login.php,找到如下代码(367行左右):

$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”;

发表评论