在用PHPMailer发送邮件的时候,解决了以下问题;
1、发送给多个收件人,同时抄送给多个人;
2、添加附件;
3、发件人姓名和邮件主题乱码;
4、邮件正文为html格式
public function sendEmail($email=[], $ccEmail=[]) {
vendor('PHPMailer.PHPMailer.PHPMailerAutoload');
$mail = new \PHPMailer();
$mail->IsSMTP(); // 启用SMTP
$mail->CharSet = 'utf8'; //设置邮件编码
$mail->Host = "smtp.163.com"; //smtp服务器的名称(QQ邮箱为 smtp.exmail.qq.com)
$mail->Port = 465;
$mail->SMTPAuth = true; //config('MAIL_SMTPAUTH'); //启用smtp认证
$mail->Username = "xx@163.com"; //你的邮箱名
$mail->Password = "xxxx"; //163授权码不是邮箱密码,qq为邮箱密码
$mail->SMTPSecure = 'ssl';
$mail->From = "from@xx.com"; //发件人地址(也就是你的邮箱地址)
//发件人姓名 注意转码使中文不乱码
$mail->FromName = "=?utf-8?B?".base64_encode("xxx")."?=";
//多收件人
foreach($email as $e){
$mail->AddAddress($e);
}
//多抄送人
foreach($ccEmail as $e){
$mail->addCC($e);
}
$mail->AddAttachment('./aa.xlsx','我的附件.xls'); // 添加附件,并指定名称
$mail->AddAttachment('./aa.xlsx','我的附件1.xls');//多附件可以数组循环
$mail->WordWrap = 50; //设置每行字符长度
$mail->IsHTML(true); // 是否HTML格式邮件
//邮件主题 注意转码使中文不乱码
$mail->Subject = "=?utf-8?B?".base64_encode("title")."?=";
$mail->Body = '你好, <b>朋友</b>! <br/>这是一封来自<a href="http://www.baidu.com"
target="_blank">baidu.com</a>的邮件!<br/>';
$mail->AltBody = "";
if (!$mail->send()) {
return ['code'=>0,'msg'=>$mail->ErrorInfo];
} else {
return ['code'=>1,'msg'=>'success'];
}
}

本文暂时没有评论,来添加一个吧(●'◡'●)