我们发送邮件的时候,如果出现乱码,那么我们需要设置一下的 代码我贴一下
<?php
/**
* Created by PhpStorm
* Author Zhiyong Dong <dongzy@xinruiying.com>
* 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 "发送成功";
}
}
}
其中包括标题和正文,需要用的好好看下。