PHP(ThinkPHP5.0) + PHPMailer 進行郵箱傳送驗證碼
阿新 • • 發佈:2018-11-12
(前面還有驗證,和開啟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.完成....