星空的小太阳 发布于:2021-11-23 08:38:24
极致CMS中邮件发送验证码的方式:
JS
注:这里的路径指的是Msgcontroller.php中的fsyzm(),传入的参数是<input type="email">中的value,也就是邮箱地址。
$.post('/msg/fsyzm',{email:email},function(r){ alert(r.msg) console.log('结果:',r) },'json');
php
发送邮件验证码
function fsyzm(){ $email = $this->frparam('email',1); $code = rand(100000,999999);//生成验证码 $_SESSION['email_code'] = $code; $user = M('member')->find(['email'=>$email]); if($user){ //生成随机秘钥 $w['logintime'] = time(); $w['token'] = getRandChar(32); M('member')->update(['id'=>$user['id']],$w); //发送邮件 if($this->webconf['email_server'] && $this->webconf['email_port'] && $this->webconf['send_email'] && $this->webconf['send_pass']){ $title = '找回密码-'.$this->webconf['web_name']; $body = '您的账号正在进行找回密码操作,如果确定是本人操作,请在1分钟内输入'.$code.'验证码,过期失效!'; send_mail($this->webconf['send_email'],$this->webconf['send_pass'],$this->webconf['send_name'],$user['email'],$title,$body); if(!isset($_SESSION['forget_time'])){ $_SESSION['forget_time'] = time(); $_SESSION['forget_num'] = 0; } if(($_SESSION['forget_time']+10*60)<time()){ $_SESSION['forget_num'] = 0; $_SESSION['forget_time'] = time(); } $_SESSION['forget_num']++; if($_SESSION['forget_num']>5 && ($_SESSION['forget_time']+10*60)>time()){ //$this->error('您操作过于频繁,请10分钟后再尝试!'); if($this->frparam('ajax')){ JsonReturn(['code'=>0,'msg'=>'您操作过于频繁,请10分钟后再尝试!']); } Error('您操作过于频繁,请10分钟后再尝试!'); } Success('找回密码邮件已发送,请到您的邮箱查看!',get_domain()); }else{ Error('邮箱服务器未配置,无法发送邮件,请联系管理员找回密码!'); } }else{ Error('输入的信息有误!'); } }
CMS系统配置
注:如需其文件,路径:/A/t/tpl/sys.html
登录后可以留言提问!