PHPMailer发送邮件的时候中文乱码解决方案

我们发送邮件的时候,如果出现乱码,那么我们需要设置一下的 代码我贴一下


 * 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 "发送成功";
        }
    }
}

 

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

 

 

 

你可能感兴趣的:(php)