秋雨 De Blog

一个技术小白的个人博客

wordpress安装wp smtp 利用阿里云邮件推送服务

背景:

WordPress中有用户注册用户、用户填入相应的邮件,后台会发送邮件给用户,Wordpress缺省是使用 PHP 的 mail() 功能发送邮件,如果主机没有开启这一功能,那么 wordpress 当然就无法发出邮件了。
由于在配置Ubuntu的sendmail邮箱的时候出现了127.0.0.1的拒绝的错误 便转战阿里云邮件推送服务如有大神解决了sendmail问题,请一定要告知我

首先,要去阿里云邮件推送服务开通这个服务 并配置邮箱域名 开通地址https://www.aliyun.com/product/directmail

《wordpress安装wp smtp 利用阿里云邮件推送服务》
首先,要去阿里云邮件推送服务开通这个服务 并配置邮箱域名 开通地址
《wordpress安装wp smtp 利用阿里云邮件推送服务》
进到阿里云snd解析中添加解析
《wordpress安装wp smtp 利用阿里云邮件推送服务》
直接添加到记录值后面即可
《wordpress安装wp smtp 利用阿里云邮件推送服务》
新建一个发信地址用来通过博客往外发邮件
《wordpress安装wp smtp 利用阿里云邮件推送服务》
设置发信地址
《wordpress安装wp smtp 利用阿里云邮件推送服务》
设置完验证一下发信地址 如果设置的没有问题你的邮箱就会收到一条验证的邮件

验证成功后 需要设置SMTP密码 这个密码是要在后台插件里登录用的。上面的过程做完之后 我们来到wordpress后台

《wordpress安装wp smtp 利用阿里云邮件推送服务》
下载并启用该插件然后来到后台设置页

这里可能会发生 下载失败 没有访问权限 需要将 wordpress/wp-content/plugins权限设置为777或者设置为www-data权限

《wordpress安装wp smtp 利用阿里云邮件推送服务》
《wordpress安装wp smtp 利用阿里云邮件推送服务》

在这里需要填发件人:你新建的发信地址
发件人:一般是你的博客名称
SMTP主机:这个一般在阿里云的邮件推送服务里有著名

《wordpress安装wp smtp 利用阿里云邮件推送服务》
按说明填写SMTP主机

加密可以选择SSL或者五 端口改成相应的80或者465即可 由于服务器25端口被大量垃圾邮件充斥 所以这里不推荐25端口
接下来设置SMTP的用户名以及密码
用户名就是你的发信地址 密码是你设置的SMTP的密码 完成后便可验证一下邮箱

《wordpress安装wp smtp 利用阿里云邮件推送服务》

到这里SMTP利用阿里云推送服务已经介绍完了,但当用户忘记密码 申请重置密码时 邮件给的连接可能会出现“wordpress 您的密码重设链接无效,请在下方请求新链接”的问题,这个问题时由于 url链接被<>括号括起来了,邮箱误以为<>也是链接的一部分,导致url不能被识别。 需要更改wordpress主题文件夹的 functions.php 在wordpress/wp-content/themes文件夹内,添加以下代码

// 解决找回密码链接无效问题
function reset_password_message( $message, $key ) {
    if ( strpos($_POST['user_login'], '@') ) {
        $user_data = get_user_by('email', trim($_POST['user_login']));
    } else {
        $login = trim($_POST['user_login']);
        $user_data = get_user_by('login', $login);
    }
    $user_login = $user_data->user_login;
    $msg = __('有人要求重设如下帐号的密码:'). "\r\n\r\n";
    $msg .= network_site_url() . "\r\n\r\n";
    $msg .= sprintf(__('用户名:%s'), $user_login) . "\r\n\r\n";
    $msg .= __('若这不是您本人要求的,请忽略本邮件,一切如常。') . "\r\n\r\n";
    $msg .= __('要重置您的密码,请打开下面的链接:'). "\r\n\r\n";
    $msg .= network_site_url("wp-login.php?action=rp&key=$key&login=" . rawurlencode($user_login), 'login') ;
    return $msg;
}
add_filter('retrieve_password_message', reset_password_message, null, 2);

参考:
MSDN double-u大佬 的解决 “wordpress 您的密码重设链接无效,请在下方请求新链接” 问题
MSDN lfendo大佬 的WordPress系列教程(五)—-WordPress配置发送邮件

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注