Thinkphp如何發送郵件。

Thinkphp如何發送郵件。

1、百度搜索 packagist (用來管理包的網站)

搜索phpmailer,點第二個進去

在phpstrom中使用composer下載,以下代碼(注意使用composer安裝之前,要記得換源  composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/    )

composer require phpmailer/phpmailer

2、安裝完成後,在thinphp包目錄下vendor/下會有一個phpmaier文件夾,表示下載成功。

3、接下來在tp框架的application\下的common.php中添加代碼,網站

可以直接複製這段簡單的案例

下面這段代碼是我測試郵件用的代碼。有備註了詳細註釋的


// 應用公共文件
use PHPMailer\PHPMailer\PHPMailer;//這個是發郵件的類,引入進來
use PHPMailer\PHPMailer\Exception;//這個是發郵件失敗了,報出異常
//這裏是公共函數,用來創建前後端公用的內容

//require 'vendor/autoload.php';//用於composer自動加載
//$mailto要發送給誰。這裏我給了4個字段,你可以自己定義,在model模型文件中直接調用email()這個函數即可
function email($mailto, $nickname, $subject, $content)
{
    $mail = new PHPMailer(true); //實例化加載這個類,如果說郵件發送失敗了,可以拋出異常
                                 //開發環境下,是需要打開異常拋出的,實際情況下可以false關閉

    try {
        $mail->SMTPDebug = 2;        //這裏是調試模式,2的話表示詳細錯誤信息,1的話是簡要錯誤信息,0的話是不顯示錯誤信息。 啓用詳細的調試輸出
        $mail->isSMTP();                                      // 設置郵件使用SMTP
        $mail->Host = 'smtp.qq.com';        // 指定主和備份SMTP服務器
        $mail->SMTPAuth = true;                               // 使SMTP認證
        $mail->Username = '[email protected]';                 // SMTP用戶名
        $mail->Password = 'xxxx';                           // SMTP 密碼,注意這裏不是你登錄的密碼。這個地方你要去136或者qq郵箱,去開通這個SMTP服務,他會提供一段密碼給你的,
        $mail->SMTPSecure = 'ssl';                            // 啓用TLS加密,也接受“ssl”
        $mail->Port = 465;                                    // 要連接的TCP端口
        $mail->CharSet = 'utf-8';                              //要發送的內容格式

        //Recipients
        $mail->setFrom('[email protected]', '來自馬雲'); //發郵件人
        $mail->addAddress($mailto, $nickname);    //收件人,可以設置好幾個

        //$mail->addReplyTo('[email protected]','xxx');   //這裏是回覆人,就是說收件用戶,要回信是發給誰的,如果這裏不寫就默認上面的發件郵箱。
        //$mail->addCC('[email protected]'); //這裏是抄送地址;

        //Attachments
        //$mail->addAttachment('var/tmp/file.tar.gz');  //發送的時候是否添加附件


        //Content
        $mail->isHTML(true);                                  // 設置電子郵件格式爲HTML
        $mail->Subject = $subject;
        $mail->Body    = $content;
      //  $mail->AltBody='發送錯誤';          //表示isHTML發送失敗,就發送這個內容。

        return $mail->send();       //這裏是發送方法
    }catch (Exception $e) {
       exception($mail->ErrorInfo(), 1001);
    }
}

4、最後測試,成功收到郵件

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章