【emlog代码】emlog以smtp方式发信后台登录失败邮件通知
下面的教程教大家如何设置后台以stmp方式发信后台登录失败的记录(本教程用的阿里云服务器),靠,阿里的默认关闭25端口,大家都知道大部分发信都是走25端口。不过哈哈哈哈哈~这个教程就是解决阿里用户如何用另一种方式发信的,好了话不多说了,开始转入正题。
ps:记得备份一下源文件。
1. 找到路径/admin/globals.php文件第17行,也就是if ($action == login) {这,然后一直选到(//退出)这行的前面,接着我们粘贴覆盖以下代码,其中的一些个人信息请改成自己的,我都已经做好备注了
if ($action == login) {
$ip = isset($_POST['ip']) ? addslashes(trim($_POST['ip'])) : '';//获取登录者ip
$username = isset($_POST['user']) ? addslashes(trim($_POST['user'])) : '';
$password = isset($_POST['pw']) ? addslashes(trim($_POST['pw'])) : '';
$ispersis = isset($_POST['ispersis']) ? intval($_POST['ispersis']) : false;
$img_code = Option::get('login_code') == 'y' && isset($_POST['imgcode']) ? addslashes(trim(strtoupper($_POST['imgcode']))) : '';
$loginAuthRet = LoginAuth::checkUser($username, $password, $img_code);
if ($loginAuthRet === true) {
LoginAuth::setAuthCookie($username, $ispersis);
emDirect("./");
} else{
header("Content-type:text/html;charset=utf-8");
require_once "Smtp.class.php";
$blogname = '似锦流年blog';//博客名称
$blogurl = 'https://www.tidik.cn';//博客地址
$bloglogo = 'https://www.tidik.cn/content/templates/fee/static/img/logo.png';//博客logo
$smtpserver = "ssl://smtp.qq.com";//
$smtpserverport =465;//SMTP服务器端口
$smtpusermail = "3252246718@qq.com";//SMTP服务器的用户邮箱
$smtpemailto = "97402023@qq.com";//发送给谁
$smtpuser = "3252246718";//SMTP服务器的用户帐号
$smtppass = "ycirqpnbdbdsadafb";//SMTP服务器的用户密码
$mailtitle = "博客后台登录失败通知";//邮件主题自行修改
$mailcontent ='<div class="emailpaged" style="background-image: url(https://www.youngxj.cn/content/templates/emedia_better/images/email.jpg);-webkit-background-size: cover;-moz-background-size: cover;-o-background-size: cover;background-size: cover;background-position: center center;background-repeat: no-repeat;">
<div class="emailcontent" style="width:100%;max-width:720px;text-align: left;margin: 0 auto;padding-top: 80px;padding-bottom: 20px">
<div class="emailtitle">
<h1 style="color:#fff;background: #51a0e3;line-height:70px;font-size:24px;font-weight:normal;padding-left:40px;margin:0">
'.$blogname.'账户登录失败通知!
</h1>
<div class="emailtext" style="background:#fff;padding:20px 32px 40px;">
<div style="padding:0;font-weight:bold;color:#6e6e6e;font-size:16px">尊敬的管理员您好!</div>
<p style="color: red;font-size:13px;line-height:24px;">'.$blogname.'有一条登录失败的记录产生,若登录操作不是您产生的,请及时注意网站安全!</p>
<table cellpadding="0" cellspacing="0" border="0" style="width:100%;border-top:1px solid #eee;border-left:1px solid #eee;color:#6e6e6e;font-size:16px;font-weight:normal">
<thead><tr><th colspan="2" style="padding:10px 0;border-right:1px solid #eee;border-bottom:1px solid #eee;text-align:center;background:#f8f8f8;">失败信息如下</th></tr></thead>
<tbody>
<tr>
<td style="padding:10px 0;border-right:1px solid #eee;border-bottom:1px solid #eee;text-align:center;width:100px">登录名</td>
<td style="padding:10px 20px 10px 30px;border-right:1px solid #eee;border-bottom:1px solid #eee;line-height:30px">'.$username.'</td>
</tr>
<tr>
<td style="padding:10px 0;border-right:1px solid #eee;border-bottom:1px solid #eee;text-align:center">尝试的密码</td>
<td style="padding:10px 20px 10px 30px;border-right:1px solid #eee;border-bottom:1px solid #eee;line-height:30px">'.$password.'</td>
</tr>
<tr>
<td style="padding:10px 0;border-right:1px solid #eee;border-bottom:1px solid #eee;text-align:center;">登录时间</td>
<td style="padding:10px 20px 10px 30px;border-right:1px solid #eee;border-bottom:1px solid #eee;line-height:30px"><span style="border-bottom: 1px dashed rgb(204, 204, 204); position: relative;">'.date("Y-m-d H:i:s").'</span></td>
</tr>
<tr>
<td style="padding:10px 0;border-right:1px solid #eee;border-bottom:1px solid #eee;text-align:center;">登录IP</td>
<td style="padding:10px 20px 10px 30px;border-right:1px solid #eee;border-bottom:1px solid #eee;line-height:30px">'.$ip.'</td>
</tr>
</tbody>
</table>
<p style="color: #6e6e6e;font-size:13px;line-height:24px;">(此邮件由系统自动发出, 请勿回复。)</p>
</div>
<div class="emailad" style="margin-top: 24px;text-align:center;">
<a href="'.$blogurl.'" target="_blank">
<img src="'.$bloglogo.'" style="margin: auto;;max-width:700px;height: auto;">
</a>
</div>
<p style="color: #6e6e6e;font-size:13px;line-height:24px;text-align:right;padding:0 32px">邮件来自:<a href="'.$blogurl.'" style="color:#51a0e3;text-decoration:none" target="_blank">'.$blogname.'</a></p>
</div>
</div>
</div>';//邮件内容
$mailtype = "HTML";//邮件格式(HTML/TXT),TXT为文本邮件
$smtp = new Smtp($smtpserver,$smtpserverport,true,$smtpuser,$smtppass);
$smtp->debug = false;
$state = $smtp->sendmail($smtpemailto, $smtpusermail, $mailtitle, $mailcontent, $mailtype);
LoginAuth::loginPage($loginAuthRet);
}
}
修改完后上传将Smtp.class.php上传到/www/emlog/admin下
2.找到路径/admin/views/login.php(如果使用的不同主题请自行变更路径)
我们可以在第二行插入一下代码
插入以下代码:
<?php
function real_ip(){
//获取用户真实IP
$ip = $_SERVER['REMOTE_ADDR'];
if(isset($_SERVER['HTTP_X_FORWARDED_FOR']) && preg_match_all('#\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}#s', $_SERVER['HTTP_X_FORWARDED_FOR'], $matches)) {
foreach ($matches[0] AS $xip) {
if (!preg_match('#^(10|172\.16|192\.168)\.#', $xip)) {
$ip = $xip;
break;
}
}
} elseif (isset($_SERVER['HTTP_CLIENT_IP']) && preg_match('/^([0-9]{1,3}\.){3}[0-9]{1,3}$/', $_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
} elseif (isset($_SERVER['HTTP_CF_CONNECTING_IP']) && preg_match('/^([0-9]{1,3}\.){3}[0-9]{1,3}$/', $_SERVER['HTTP_CF_CONNECTING_IP'])) {
$ip = $_SERVER['HTTP_CF_CONNECTING_IP'];
} elseif (isset($_SERVER['HTTP_X_REAL_IP']) && preg_match('/^([0-9]{1,3}\.){3}[0-9]{1,3}$/', $_SERVER['HTTP_X_REAL_IP'])) {
$ip = $_SERVER['HTTP_X_REAL_IP'];
}
return $ip;
}
?>
3.也是最后一步了也是最重要的一步了
还是/admin/views/login.php这个文件,找到action="./index.php?action=login",在它之后的form表单内添加一下代码:
<input type="hidden" name="ip" value="<?php echo real_ip();?>" />
插入完成后,就大功搞错,刷新浏览器缓存,使用错误的账号、密码进行登录测试,如果不出意外就能收到邮件了。 该附件已被管理员隐藏 您需要回复后并刷新才可以下载
如果你觉得雨滴资源网对你有帮助的话,可以小小的打赏一下小站,用于维持本站的运营!
版权声明:雨滴资源网内容来源于互联网,如果有侵权内容、不妥之处,请第一时间联系我们删除。敬请谅解!
本文链接:【emlog代码】emlog以smtp方式发信后台登录失败邮件通知 - https://www.yudzy.com/403.html
失效提示:此文更新于2019-6-13,如果文章内容或图片资源失效,请留言反馈,客服会及时处理,谢谢!


