我們發送郵件的時候,如果出現亂碼,那麼我們需要設置一下的 代碼我貼一下
<?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 "發送成功";
}
}
}
其中包括標題和正文,需要用的好好看下。