免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
thinkphp實(shí)現(xiàn)用戶(hù)注冊(cè)時(shí)郵箱激活

有些網(wǎng)站在注冊(cè)的時(shí)候,會(huì)向用戶(hù)的郵箱發(fā)送郵件,點(diǎn)擊郵件中的鏈接激活賬戶(hù),基本原理就是在注冊(cè)的時(shí)候(即點(diǎn)擊發(fā)送郵件的時(shí)候),先把用戶(hù)的信息存進(jìn)數(shù)據(jù)庫(kù),另外還有一個(gè)激活狀態(tài)的字段(默認(rèn)是未激活)點(diǎn)擊郵件中的鏈接,驗(yàn)證通過(guò)之后,該字段狀態(tài)會(huì)改為已激活,郵件中的鏈接信息包括:用戶(hù)id(只要是在數(shù)據(jù)庫(kù)中能找到對(duì)應(yīng)的數(shù)據(jù)就行,不一定是id),激活碼,點(diǎn)擊這個(gè)鏈接之后,會(huì)把這些數(shù)據(jù)傳到我們寫(xiě)好的一個(gè)方法里面,只要在這個(gè)方法里面驗(yàn)證即可。

業(yè)務(wù)流程

1、用戶(hù)提交注冊(cè)信息

2、寫(xiě)入數(shù)據(jù)庫(kù),此時(shí)賬號(hào)未激活

3、將用戶(hù)名密碼或其他標(biāo)識(shí)字符進(jìn)行加密構(gòu)成激活碼

4、將激活碼和用戶(hù)的id組成URL發(fā)送到郵箱

5、用戶(hù)登陸郵箱。點(diǎn)擊URL激活

6、驗(yàn)證激活碼,正確就激活賬號(hào),更改激活狀態(tài)

數(shù)據(jù)庫(kù)設(shè)計(jì) 

 

發(fā)送郵件

發(fā)送郵件之前需要加載phpemailer類(lèi),可以看我上一篇文章Thinkphp5+PHPMailer實(shí)現(xiàn)發(fā)送郵件

public function index()
    {
        $toemail = 'xxx@126.com';    //這里寫(xiě)的是收件人的郵箱
        $active_url = "http://test.zxf/index/sendmail/active.html?id=1&active_key=123";
        $body =  "親愛(ài)的".$toemail.":<br/>感謝您在我站注冊(cè)了新賬號(hào)。<br/>請(qǐng)點(diǎn)擊鏈接激活您的賬號(hào)。<br/> 
                    <a href='".$active_url."' target= '_blank'>點(diǎn)擊激活</a><br/> 
                    如果以上鏈接無(wú)法點(diǎn)擊,請(qǐng)將它復(fù)制到你的瀏覽器地址欄中進(jìn)入訪(fǎng)問(wèn),該鏈接24小時(shí)內(nèi)有效。"; 

        $mail=new Phpmailer();
        $mail->isSMTP();    // 使用SMTP服務(wù)(發(fā)送郵件的服務(wù))
        $mail->CharSet = "utf8";    // 編碼格式為utf8,不設(shè)置編碼的話(huà),中文會(huì)出現(xiàn)亂碼
        $mail->Host = "smtp.qq.com";    // 發(fā)送方的SMTP服務(wù)器地址
        $mail->SMTPAuth = true;    // 是否使用身份驗(yàn)證
        $mail->Username = "xx@qq.com";    // 申請(qǐng)了smtp服務(wù)的郵箱名(自己的郵箱名)
        $mail->Password = "xxxx";    // 發(fā)送方的郵箱密碼,不是登錄密碼,是qq的第三方授權(quán)登錄碼,要自己去開(kāi)啟(之前叫你保存的那個(gè)密碼)
        $mail->SMTPSecure = "ssl";    // 使用ssl協(xié)議方式,
        $mail->Port = 465;    // QQ郵箱的ssl協(xié)議方式端口號(hào)是465/587
        $mail->setFrom("xx@qq.com","測(cè)試發(fā)件人");    // 設(shè)置發(fā)件人信息,如郵件格式說(shuō)明中的發(fā)件人,
        $mail->addAddress($toemail,'測(cè)試收件人');    // 設(shè)置收件人信息,如郵件格式說(shuō)明中的收件人
        $mail->addReplyTo("xx@qq.com","Reply");    // 設(shè)置回復(fù)人信息,指的是收件人收到郵件后,如果要回復(fù),回復(fù)郵件將發(fā)送到的郵箱地址
        $mail->Subject = "這是一個(gè)測(cè)試郵件";    // 郵件標(biāo)題
        $mail->Body = $body;// 郵件正文
        
        $mail->CharSet = "UTF-8";   //字符集
        $mail->Encoding = "base64"; //編碼方式
        $mail->IsHTML(true);    //支持html格式內(nèi)容

       if(!$mail->send()){    // 發(fā)送郵件
           echo "Message could not be sent.";
           echo "Mailer Error: ".$mail->ErrorInfo;    // 輸出錯(cuò)誤信息
        }else{
            echo '';
            return '發(fā)送成功';
        }
    }

發(fā)送成功之后,郵件內(nèi)容,注意,如果發(fā)送之后,郵件內(nèi)容不能解析html代碼,需要添加支持html格式內(nèi)容 $mail->IsHTML(true);

 

驗(yàn)證注冊(cè)激活賬戶(hù) 

public function active()
    {
        $data = request()->param();
        // 通過(guò)id找對(duì)應(yīng)的激活碼
        $active_key = Db::table('active')->where(['id'=>$data['id']])->value('active_key');
        if ($active_key) {

            // 驗(yàn)證激活碼是否正確
            if ($active_key == $data['active_key']) {
                // 更改激活狀態(tài)
                $res = Db::table('active')->where(['id'=>$data['id']])->update(['status'=>1]);
                if ($res) {
                    echo "激活成功";
                }else{

                    echo "激活失敗";
                }
            }else{
                echo "激活碼不正確";
            }
        }else{
            echo "用戶(hù)不存在";
        }
    }

這里只是簡(jiǎn)單舉例,安全性還不高,可以對(duì)激活碼加密,添加激活碼的過(guò)期時(shí)間等提高安全性

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶(hù)發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
Thinkphp5+PHPMailer實(shí)現(xiàn)發(fā)送郵件
TP5.0.9框架實(shí)現(xiàn)發(fā)送郵件
Linux中如何使用mail發(fā)送郵件
Java郵件開(kāi)發(fā)-----javaMail(二)
python測(cè)試開(kāi)發(fā)django-28.發(fā)送郵件send_mail
E-mail
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服