1. 程式人生 > >PHP(ThinkPHP5.0) + PHPMailer 進行郵箱傳送驗證碼

PHP(ThinkPHP5.0) + PHPMailer 進行郵箱傳送驗證碼

(前面還有驗證,和開啟smtp不哆嗦,百度...下面是實現邏輯-------------->經供自己參考記憶用)

原生筆記

原生視屏

1.上GitHub下載最新版第三方類庫 PHPMailer;

2.解壓,然後把Exception.php和PHPMailer.php以及SMTP.php載入進TP5.0中(載入方法)

3.三個檔案的名稱空間的修改(加上namespace PHPMailer;)

4.修改異常處理:

5.在函式 :send_code_to_email()所在類中進行引入上面的  PHPMailer

/**
     * 通過郵箱進行驗證碼的傳輸-----發件人小明,收件人小紅
     * @param email $email  [收件人郵箱地址]
     * @param int  $code    [驗證碼]
     * @throws \PHPMailer\Exception [郵件處理異常]
     */
    public function send_code_to_email($email,$code){
         $toemail=$email;//定義收件人的郵箱
         $sendmail = '*************@qq.com'; //發件人郵箱
         $sendmailpswd = "zbdaikawctzeghfj"; //客戶端授權密碼,而不是郵箱的登入密碼,就是手機發送簡訊之後彈出來的一長串的密碼
         $send_name = '小明';// 設定發件人資訊,如郵件格式說明中的發件人,
         $to_name = '小紅';//設定收件人資訊,如郵件格式說明中的收件人
         $mail = new PHPMailer();
         $mail->isSMTP();// 使用SMTP服務
         $mail->CharSet = "utf8";// 編碼格式為utf8,不設定編碼的話,中文會出現亂碼
         $mail->Host = "SMTP.qq.com";// 傳送方的SMTP伺服器地址
         $mail->SMTPAuth = true;// 是否使用身份驗證
         $mail->Username = $sendmail;//// 傳送方的
         $mail->Password = $sendmailpswd;//客戶端授權密碼,而不是郵箱的登入密碼!
         $mail->SMTPSecure = "ssl";// 使用ssl協議方式
         $mail->Port = 465;//  sina埠110或25) //qq  465 587
         $mail->setFrom($sendmail, $send_name);// 設定發件人資訊,如郵件格式說明中的發件人,
         $mail->addAddress($toemail, $to_name);// 設定收件人資訊,如郵件格式說明中的收件人,
         $mail->addReplyTo($sendmail, $send_name);// 設定回覆人資訊,指的是收件人收到郵件後,如果要回復,回覆郵件將傳送到的郵箱地址
         $mail->Subject = "這是郵件的標題!";// 郵件標題
         //$code=$code;
        // session("code",$code);
         //return $code."----".session("code");
         $mail->Body = "這是一個測試郵件,您的驗證碼是: $code 記得回覆我喲!麼麼噠...";// 郵件正文
         //$mail->AltBody = "This is the plain text純文字";// 這個是設定純文字方式顯示的正文內容,如果不支援Html方式,就會用到這個,基本無用
        if(!$mail->send()){

            $this->return_msg(400,$mail->ErrorInfo);//返回資料格式自己定義的一個函式
            (你也可以寫return false;)
    
        }else{
            $this->return_msg(200,"驗證碼已經發送,請注意查收");
             (你也可以寫return true;)
        }
    }

6.完成....