tp6郵件發送


一、開啟SMTP服務(使用php發送郵件需要用到SMTP服務,這里以QQ郵箱的SMTP服務為例)

1.登錄qq郵箱,在首頁上找到“設置”。

2.選擇開啟的服務,一般都全選,POP3/SMTP/IMAP,開啟SMTP服務就得先開通客戶授權碼。

3.點擊開通客戶授權碼,選擇開啟

4.需要手機驗證碼,需要綁定手機號。

5.SMTP服務需要輸入客戶端授權密碼,這個密碼就是是你在第三方客戶端上的郵箱登錄密碼(在后面使用phpmailer發送郵件時會用到),如果在第三方客戶端上輸入之前的郵箱登錄密碼就會出錯。

6.設置完客戶端授權密碼后就成功開通了SMTP服務

二、首先下載phpmailer壓縮包

在tp6的項目中的extend目錄下新建一個phpmailer文件夾

composer require phpmailer/phpmailer

然后把phpmailer.php 和smtp.php文件復制到目錄下(只有這兩個文件有用) 修改命名空間

添加phpmailer中添加 use think\Exception

此外要確保安裝了 openssl擴展

三、發送郵件函數

   /**
     * [向郵箱發送驗證碼]
     * @param  [String] $email [目標emial]
     * @param  [Number] $code     [驗證碼]
     * @return [json]           [執行結果]
     */
    public function sendCodeToEmail($email, $code)
    {

        $toemail = $email;
        $mail = new PHPMailer();
        $mail->isSMTP();  //使用smtp鑒權方式發送郵件
        $mail->CharSet = 'utf8';   //設置編碼
        $mail->Host = 'smtp.qq.com';  //qq郵箱smtp郵箱
        $mail->SMTPAuth = true;    //是否需要認證身份
        $mail->Username = "123456789@qq.com";  //發送方郵箱
        $mail->Password = "**********";    //發送方smtp密碼 
        $mail->SMTPSecure = 'ssl';    //使用的協議
        $mail->Port = 465;   //qq郵箱接收的端口號
        $mail->setFrom('123456789@qq.com', '驗證碼發送');  //定義郵件及標題(不同郵件標題顯示不一致)
        $mail->addAddress($toemail, '您好!');  //要發送的地址和設置地址的昵稱
        $mail->addReplyTo('123456789@qq.com', 'Replay'); //回復地址
        $mail->Subject = "您有新的驗證碼!";  //添加該郵件的主題
        $mail->Body = "您的驗證碼是" . $code . ",驗證碼的有效期為600秒,本郵件請勿回復!"; //該郵件內容

        //如果發送失敗
        if (!$mail->send()) {
            $this->return_msg(400, $mail->ErrorInfo);
        } else {
            $this->return_msg(200, '驗證碼發送成功,請注意查收!');
        }
    }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM