PHPMailer發送郵件的時候中文亂碼解決方案

我們發送郵件的時候,如果出現亂碼,那麼我們需要設置一下的 代碼我貼一下

<?php
/**
 * Created by PhpStorm
 * Author Zhiyong Dong <[email protected]>
 * Date:2020/6/28
 * Time:11:01
 */

namespace app\helps;

use yii;

class Email{
    public static function sendEmail($title,$content,$tos,$is_html){
        require '..'.DIRECTORY_SEPARATOR.'email'.DIRECTORY_SEPARATOR.'PHPMailer'.DIRECTORY_SEPARATOR.'PHPMailerAutoload.php';
        $mail = new \PHPMailer;
        //設置編碼方式
        $mail->CharSet='UTF-8';
        //使用smtp鑑權方式發送郵件
        $mail->isSMTP();
        //smtp需要鑑權 這個必須是true
        $mail->SMTPAuth = true;
        // qq 郵箱的 smtp服務器地址,這裏當然也可以寫其他的 smtp服務器地址
        $mail->Host = Yii::$app->params['help_email']['host'];
        //smtp登錄的賬號 這裏填入字符串格式的qq號即可
        $mail->Username = Yii::$app->params['help_email']['username'];
        // 這個就是之前得到的授權碼,一共16位
        $mail->Password = Yii::$app->params['help_email']['password'];
        $mail->setFrom(Yii::$app->params['help_email']['username'], 'admin');
        // $to 爲收件人的郵箱地址,如果想一次性發送向多個郵箱地址,則只需要將下面這個方法多次調用即可
        foreach ($tos as $to){
            $mail->addAddress($to);
        }
        // 該郵件的主題
        $mail->Subject = "=?utf-8?B?" . base64_encode($title) . "?=";
        // 該郵件的正文內容
        $mail->isHTML($is_html);
        $mail->Body = $content;
        $mail->Port = 465;
        $mail->SMTPSecure = 'ssl';

        // 使用 send() 方法發送郵件
        if(!$mail->send()) {
            return '發送失敗: ' . $mail->ErrorInfo;
        } else {
            return "發送成功";
        }
    }
}

 

其中包括標題和正文,需要用的好好看下。

 

 

 

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