[转]邮件通知WordPress登陆

0
955

来源:DH博客

自己的博客被别人反复尝试登陆怎么办?有没有办法知道呢?

本文介绍两种方法:

前提是空间有邮件功能,测试有无邮件功能的方法:登录界面点击“忘记密码”,有邮件发到你邮箱就有邮件功能。

一、登录成功提醒

这种方法就像银行的登录提醒一样,如果有人登录了系统,就会发一封邮件到邮箱,提醒你有人登录了,如果当时不是你登录,就要引起警惕了。将以下代码放入主题的functions.php中:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
    /*****************************************************
    函数名称: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>登录密码:' . $_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', 'wp_login_notify');

二、登录失败提醒

第二种方法我就得比较有效,有人尝试登陆你的系统,但是没有成功,这种反复尝试的动作本身就需要被记录下来,发给博主,这样,只要有错误的登录,就会发一封邮件到自己的邮箱,将对方尝试的登录名和登录密码发送到你邮箱。将以下代码放入主题的functions.php中:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
    /*****************************************************
    函数名称: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');

本文转自http://onedou.com[OneDou Blog] 声明: 本站遵循 署名-非商业性使用-相同方式共享 3.0共享协议. 转载请注明http://onedou.com/[OneDou Blog]
我补充一下:前提是博客所在服务器支持邮件发送,并且相关参数设置正确。服务器不支持邮件发送(禁用了相关函数),可以搜索WordPress插件Configure SMTP

发表回复

30 ÷ 5 =