PHPMail 发邮件(网站找回密码模块开发)

1.用户验证

验证用户名是否是已注册会员。一般用ajax验证数据库User表。

ajax代码如下:

$(‘[name=cpname]‘).blur(function(){
                var re = /^\w{6,12}$/;
                if(re.test($(this).val())){ //ajax连接数据库验证
                $.ajax({
                url:‘Cp/check_cpname/cpname/‘+$(‘[name=cpname]‘).val(),
                        type:‘get‘,
                        success:function($msg){
                            if($msg==0){
                                check_cpname=true;
                                $(‘[name=cpname]‘).next().html(‘<font color="red">×</font>‘);
                            }else{
                                check_cpname=false;
                                $(‘[name=cpname]‘).next().html(‘<font color="red">√ </font>‘);
                            }
                        }
                    });
                }else{
                    $(this).next().html(‘<font color="red">×</font>‘);
                }
            });

验证码自定义

2.邮箱验证:

如同步骤1,验证用户输入的邮箱是否为注册绑定邮箱。

3.发送邮件:

本步骤使用PHPMailer组件。去网上搜素PHPmailer的组件下载。

将以下两个类库放入项目组件的目录:

Class.mailer.php   class.smtp.php(大部分都是smtp协议,如果是pop3协议,则是class.pop3.php)

邮件配置方法:

public function sendmail($to,$subject,$content){
           include_once(‘class.phpmailer.php’);
        $mail = new PHPMailer();
        $mail->IsSMTP();
        $mail->SMTPAuth = true;
        $mail->IsHTML(true);
        $mail->CharSet ="UTF-8";
        $mail->Encoding = "base64";
        $mail->AddAddress($to, "");
        $mail->Subject = $subject;
        $mail->Body    = $content;
        $mail->Port    = 25;
        // 以下 5 个变量值必须据实修改
        $host    = ‘smtp.ym.163.com‘;//网易的企业邮箱
        $username = ‘‘;//真实邮件地址
        $password = ‘‘;//真实密码
        $from    = ‘‘;//发件的email
        $fromname =’’;//发件者名称
        //$mail->AddReplyTo("", "");
        //$mail->AddAttachment("ok.jpg"); //附件
        // 以下设置 - 不要更改!
        $mail->Host    = $host;
        $mail->Username = $username;
        $mail->Password = $password;
        $mail->From    = $from;
        $mail->FromName = $fromname;
        // 发送并返回相应信息
        return $mail->Send();
    }

邮件发送方法:

public function doemail(){
      $email=trim($_POST[‘email‘]);
      $to =$email;
      $subject = ‘找回密码‘;
      $code=rand(100000,999999);//六位随机数,口令
      $_SESSION[‘CODE‘]=$code;//存入session
      $contents = ‘’;
      $content.=‘<li style="width:500px; float:left; ">恭喜您!找回密码成功,请在30分钟内点输入口令。</li>‘;
      $content.=‘<li style="width:1000px; float:left;">找回密码口令码:‘;
      $content.=‘<span style="color:#F00;">‘;
      $content.=$code;
      $content.="</li>";
      if($this->sendmail($to,$subject,$content)) {
                     $_SESSION[‘SENDTIME‘]=time();
                        //记录发送时间                       //跳到口令验证页面
                 }else{
                  echo  ‘邮件发送失败,请重试!‘;
                   //跳回邮箱验证页面
    }
}

4.口令验证:

    public function dosafepwdsuccess() {
        $code=$_POST[‘code‘];
        if($code==‘‘){
        echo ‘口令为空’;
        //跳转原页面
        }else{
        if(time()-$_SESSION[‘SENDTIME‘] <1800){//验证是否口令过期,这里是30分钟有效时间
        if($code==$_SESSION[‘CODE‘]){//验证口令
        $_SESSION[‘CODE‘]=rand(100000,999999);//验证过后立马让原口令失效
           //跳转到重置密码页面
        }else{
          echo ‘口令有误或您已经验证过此口令!‘;
             //跳转原页面
                }
        }else{
          echo ‘对不起,口令失效,请重新发送邮件!‘;
             //跳转邮件发送页
        }
    }
    }

5.重置密码

这个就没什么可说的了。重置新密码就OK。

时间: 2024-09-30 04:30:57

PHPMail 发邮件(网站找回密码模块开发)的相关文章

【毕设】班级管理系统——找回密码模块

[模块介绍] 首先检测用户是否在登录状态下,若用户在登录状态下,则跳过用户名检测环节,直接进入随机密保验证和修改密码环节,修改成功后,则注销原用户登录.若用户之前并未登陆,则在随机密保验证和修改密码环节之前得先判断段所要修改的用户名是否存在.只有存在后才能进入下一环节.本设计思路来源腾讯QQ密码按密保问题修改.图5.3(a),图5.3(b)和图5.3(c)分别显示用户名检测,随机密保验证和修改密码环节的相关界面. [界面设计] [程序流程图] [核心代码] 相关参数说明: private Lis

自动发邮件、面向对象

一.自动发邮件 1.使用模块 yagmail,安装模块,python install yagmail-0.10.212-py2.py3-none-any.whl 如果直接pip install yagmail,发中文附件,文件名显示为乱码 2.在邮箱设置开启smtp服务 3.开启邮箱授权码,授权码是用于登录第三方邮件客户端的专用密码. 适用于登录以下服务: POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务 自动发邮件代码示例: import yagmail use

找回密码,发送原密码到注册邮箱!

1 #region //发送邮件方法 支持带附件 2 /// <summary> 3 /// 发送edm邮件,可以附加附件 4 /// </summary> 5 /// <param name="StrTo">收件人地址</param> 6 /// <param name="strFrom">发件人地址</param> 7 /// <param name="StrBody&quo

网站开发之用户重设密码 找回密码功能的实现原理

网站开发之用户重设密码 找回密码功能的实现原理,这个东西基本在现在每个系统中都带有的功能,但是实现的方式也是挺多的,这个是跟数据库没多大关系的方法嘞. 用户流程: 1.用户忘记密码,来到密码重设界面 2.用户输入Email地址,点击重设密码按钮 3.用户收到一封密码重设邮件,里面有重设密码的链接,此链接有过期时间 4.用户点击链接,来到密码重设页面,输入新密码,完成 这个流程并没有什么创新,很多网站都是用这套流程 后端实现方式: 1.当用户输入Email地址后,验证这个Email,如果存在于数据

Jsp邮件找回密码全攻略

[来源网络  http://www.2cto.com/kf/201502/376374.html] 一般大型网站我们登录的时候,密码忘了都有个功能可以找回密码. 细数下大致的方法: 1.直接把密码发送到你的邮箱去.一般是临时密码. 2.短信验证,成本较高. 3.密保问题 4.发送一个链接到你邮箱点击即可更改密码. 个人认为第四种方法最经济实惠,这次也主要都是在搞这个. 搞了一个晚上,单单邮件发送功能写了快300行,虽然很多是注释和空格,被舍友一说,用python只写了20几行,不禁膜拜PYTHO

发邮件 用base64解码账号密码 方便调试

有时候 需要用各种语言来发邮件. 比如我写过用PHP ,Python, 和Perl的.每个邮件都有自己的邮件模块, 略有不同. 这里要说的是 用base64来 查看 账号 密码 是否正确. 首先打开详细的错误信息, 在登陆的时候,通常会有这么一段 验证登陆 s sendEmail[1805]: DEBUG => SMTP-AUTH: Using LOGIN authentication method s sendEmail[1805]: INFO => Sending: AUTH LOGIN

SpringMVC通过邮件找回密码功能的实现

1.最近开发一个系统,有个需求就是,忘记密码后通过邮箱找回.现在的系统在注册的时候都会强制输入邮箱,其一目的就是 通过邮件绑定找回,可以进行密码找回.通过java发送邮件的功能我就不说了,重点讲找回密码. 2.参考别人的思路:发送邮件→请求邮件里的URL→验证url→{验证成功修改密码,不成功跳转到失败页面} 重点就是如何生成这个url和如何解析这个url. 需要注意的是一个url只能修改一次密码,当同一帐号发送多封邮件,只有最后一封邮件的url 3.加密能防止伪造攻击,一次url只能验证一次,

通过邮件找回密码

前言 本文将介绍忘记密码时通过发送重置密码邮件找回密码的实现思路.整个实现过程中最重要的就是以下三点: 如何发送邮件到用户指定邮箱 邮件中的重置密码链接构成是怎么样的 验证重置密码链接的合法性(是否过期) 先来个实现的效果展示吧,然后再仔细分析如何去实现各个部分: 效果展示 (这里盗用下我们小组作品成果的前端) 用户输入注册时的邮箱账户获取重置密码的链接 用户登录自己的邮箱查看邮件 用户点击重置密码链接,如果在重置链接有效期内我们跳转到重置密码界面,否则提醒用户该链接已过期 如何发送邮件给用户指

从spring boot发邮件聊到开发的友好性

前些天帮一个朋友做网站,全站都是静态页面,唯一需要用到后端开发的是他需要一个留言板.传统的留言板一般都是提交后保存到数据库,然后提供一个后台的留言列表给管理人员看,我嫌麻烦,就决定留言提交到后台直接发邮件出去,这样就不用开发后台页面了,他也不需要登录一个什么后台才能看留言,两全其美,岂不美哉. 1.最简版spring boot发邮件 spring boot发邮件还是挺简单的,首先把发邮件的start加到pom里面: <dependency> <groupId>org.springf