Home  >  Article  >  PHP Framework  >  About thinkphp email verification code front and backend

About thinkphp email verification code front and backend

藏色散人
藏色散人forward
2021-05-07 09:26:432967browse

The following tutorial column of thinkphp will introduce to you the front and backend of thinkphp email verification code. I hope it will be helpful to friends who need it!

About thinkphp email verification code front and backend

thinkphp email verification code front and backend

Idea:

Use jquery.validate to verify the front desk to verify whether the email exists, etc. Wait, the interaction is done with ajax. Use the mailbox class library on the backend to directly code

Preparation:

1. Download the PHPMailer class library and put it in Application/Thinkphp/Library/Vendor/. Search online, but can’t find it. You can contact me
2. Enable SMTP, give an example of NetEase mailbox

About thinkphp email verification code front and backend

fill in config.php:

// 配置邮件发送服务器
'MAIL_HOST' =>'smtp.163.com',//smtp服务器的名称
'MAIL_SMTPAUTH' =>TRUE, //启用smtp认证
'MAIL_USERNAME' =>'lishine0216@163.com',//你的邮箱名
'MAIL_FROM' =>'lishine0216@163.com',//发件人地址
'MAIL_FROMNAME'=>'南京商丘商会',//发件人姓名
'MAIL_PASSWORD' =>'a3392894',//邮箱密码
'MAIL_CHARSET' =>'utf-8',//设置邮件编码
'MAIL_ISHTML' =>TRUE, // 是否HTML格式邮件

fill in function.php

<?php /**
 * 邮件发送函数
 */
    function sendMail($to, $title, $content) {
     
        Vendor(&#39;PHPMailer.PHPMailerAutoload&#39;);     
        $mail = new PHPMailer(); //实例化
        $mail->IsSMTP(); // 启用SMTP
        $mail->Host=C('MAIL_HOST'); //smtp服务器的名称(这里以QQ邮箱为例)
        $mail->SMTPAuth = C('MAIL_SMTPAUTH'); //启用smtp认证
        $mail->Username = C('MAIL_USERNAME'); //你的邮箱名
        $mail->Password = C('MAIL_PASSWORD') ; //邮箱密码
        $mail->From = C('MAIL_FROM'); //发件人地址(也就是你的邮箱地址)
        $mail->FromName = C('MAIL_FROMNAME'); //发件人姓名
        $mail->AddAddress($to,"尊敬的客户");
        $mail->WordWrap = 50; //设置每行字符长度
        $mail->IsHTML(C('MAIL_ISHTML')); // 是否HTML格式邮件
        $mail->CharSet=C('MAIL_CHARSET'); //设置邮件编码
        $mail->Subject =$title; //邮件主题
        $mail->Body = $content; //邮件内容
        $mail->AltBody = "这是一个纯文本的身体在非营利的HTML电子邮件客户端"; //邮件正文不支持HTML的备用显示
        //return($mail->Send());
        if (!$mail->send()) {
                echo "Mailer Error: " . $mail->ErrorInfo;
        } else {
                echo "Message sent!";
        }
    }

Backend:

public function createSMSCode($length = 6){
    $min = pow(10 , ($length - 1));
    $max = pow(10, $length) - 1;
    return rand($min, $max);
}

//ajax发送邮件
public function e_mail_send(){
    $e_mail=I("post.e_mail");
    $result=M("user")->where(array("e_mail"=>$e_mail))->find();
    if($result){
        $code=$this->createSMSCode();
        //存储验证码,相当于全局变量,因为再次调用createSMSCode时,代码会变
        session("code",$code);
        session("e_mail",$e_mail);
        SendMail($e_mail,"南京商丘商会验证码","您的验证码是".$code.",请正确填写");
        $data="yes";
    }else{
        $data="no";
    }
    $this->ajaxReturn($data);
}

Frontend:

<p>
    </p><p>
        </p><p>                    
            </p><p>
                </p><h3>密码找回!<br><span>请填入您的邮箱进行密码找回</span><br><span>发送后请注意查收邮箱信息填入验证码中</span>
</h3>
                
                                         发送
                                        

                                        
                                                                          
                    
                    

                
                          

ajax part:

            <script>
                $("#send").click(function(){
                    var e_mail=$("#e_mail").val();
                     $.post("{:U(&#39;Forget/e_mail_send&#39;)}","e_mail="+e_mail,function(data){
                        if(data=="yes"){
                            $("#back").html("发送成功,请查收邮件");
                        }else{
                            $("#back").html("邮箱错误或不存在");
                        }
                    });    
                });
            </script>

Display:

About thinkphp email verification code front and backend

The above is the detailed content of About thinkphp email verification code front and backend. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:segmentfault.com. If there is any infringement, please contact admin@php.cn delete
Previous article:thinkphp6 redirect tipsNext article:thinkphp6 redirect tips