编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

PHPMailer发送邮件多收件人和多抄送人及乱码问题

wxchong 2024-07-18 09:43:49 开源技术 9 ℃ 0 评论

在用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'];
	}
}

Tags:

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

欢迎 发表评论:

最近发表
标签列表