WordPress后台登陆邮件提醒
分享一下前段时间开始用的WordPress后台登陆邮件提醒功能。不用不知道,一用吓一跳。用完之后每天邮箱里都有几百上前封登陆失败的邮件= =今天先分享怎么实现登陆邮件提醒,下一篇文章再讲防止被别人暴力破解密码的方法。
文章来自DH博客,修改了一下,把登陆成功提醒邮件里的密码删掉了,防止邮件被他人看见泄露密码。
实现方法
前提是空间有邮件功能,测试有无邮件功能的方法:登录界面点击“忘记密码”,有邮件发到你邮箱就有邮件功能。
一、登录成功提醒
就像银行的登录提醒一样,如果有人登录了系统,就会发一封邮件到邮箱,提醒你有人登录了,如果当时不是你登录,就要引起警惕了。将以下代码放入主题的functions.php中:
/*****************************************************
函数名称:wp_login_notify v1.0 by DH.huahua.
函数作用:有登录wp后台就会email通知博主
******************************************************/
function wp_login_notify()
{
date_default_timezone_set('PRC');
$admin_email = get_bloginfo ('admin_email');
$to = $admin_email;
$subject = '你的博客空间登录提醒';
$message = '<p>你好!你的博客空间(' . get_option("blogname") . ')有登录!</p>' .
'<p>请确定是您自己的登录,以防别人攻击!登录信息如下:</p>' .
'<p>登录名:' . $_POST['log'] . '</p>' .
'<p>登录时间:' . date("Y-m-d H:i:s") . '</p>' .
'<p>登录IP:' . $_SERVER['REMOTE_ADDR'] . '</p>';
$wp_email = 'no-reply@' . preg_replace('#^www\.#', '', strtolower($_SERVER['SERVER_NAME']));
$from = "From: " . get_option('blogname') . " <$wp_email>";
$headers = "$from\nContent-Type: text/html; charset=" . get_option('blog_charset') . "\n";
wp_mail( $to, $subject, $message, $headers );
}
add_action('wp_login', 'wp_login_notify');
二、登录失败提醒
有人尝试登陆你的系统,但是没有成功,这种反复尝试的动作本身就需要被记录下来,发给博主,这样,只要有错误的登录,就会发一封邮件到自己的邮箱,将对方尝试的登录名和登录密码发送到你邮箱。将以下代码放入主题的functions.php中:
/*****************************************************
函数名称:wp_login_failed_notify v1.0 by DH.huahua.
函数作用:有错误登录wp后台就会email通知博主
******************************************************/
function wp_login_failed_notify()
{
date_default_timezone_set('PRC');
$admin_email = get_bloginfo ('admin_email');
$to = $admin_email;
$subject = '你的博客空间登录错误警告';
$message = '<p>你好!你的博客空间(' . get_option("blogname") . ')有登录错误!</p>' .
'<p>请确定是您自己的登录失误,以防别人攻击!登录信息如下:</p>' .
'<p>登录名:' . $_POST['log'] . '</p>' .
'<p>登录密码:' . $_POST['pwd'] . '</p>' .
'<p>登录时间:' . date("Y-m-d H:i:s") . '</p>' .
'<p>登录IP:' . $_SERVER['REMOTE_ADDR'] . '</p>';
$wp_email = 'no-reply@' . preg_replace('#^www\.#', '', strtolower($_SERVER['SERVER_NAME']));
$from = "From: " . get_option('blogname') . " <$wp_email>";
$headers = "$from\nContent-Type: text/html; charset=" . get_option('blog_charset') . "\n";
wp_mail( $to, $subject, $message, $headers );
}
add_action('wp_login_failed', 'wp_login_failed_notify');
效果如图:
未能收到邮件可能还需要参考WordPress 电子邮件未能发送问题的设置。
原文来自:http://blog.gimhoy.com/archives/wordpress-login-notification.html

