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

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。