thinkphp3.2.3使用PHPMailer发送QQ邮件
2020-07-05 网络
前一篇文件讲过thinkphp如何使用Smtp类发送邮件,文章地址为:thinkphp3.2.3使用smtp发送email,这两种方式都一样,必须要发送方开启smtp服务才行;
但由于QQ发邮件相对来说比较严格一些,必须使用一个叫PHPMailer的扩展包才行,这个可以从网站搜索下载即可,本站暂不提供,只需要展示一下控制器代码即可,如下:
namespace Home\Controller; class MessageController extends Controller{ public function index(){ if(IS_POST){ $data=I('post.'); $emailtitle='网站留言-'.$data['name']; $emailcontent="姓名:{$data['name']} 电话: {$data['mobile']} 邮箱: {$data['email']} 留言内容: {$data['message']}"; $state=$this->sendQQMail($emailtitle,$emailcontent); if($state){ $this->success('留言成功'); } else { $this->error('留言失败'); } } else { $this->display(); } } //发送QQ邮件 private function sendQQMail($title, $content,$to='接收方邮箱地址') { Vendor('PHPMailer.PHPMailerAutoload'); //这里需要引入PHPMailer包,包放在ThinkPHP/Library/Vender目录下 $mail = new PHPMailer(); //实例化 $mail->IsSMTP(); // 启用SMTP $mail->Host='smtp.qq.com'; //smtp服务器的名称 $mail->SMTPAuth = TRUE; //启用smtp认证 $mail->Username = '发送方邮箱名'; //你的邮箱名 $mail->Password = '发送方邮箱授权码' ; //QQ邮箱的制授权码,注意这里和其他邮件发送不一样 $mail->From = '发送方邮箱地址'; //发件人地址 $mail->FromName = '发件人姓名'; //发件人姓名 $mail->SMTPSecure = 'tls'; // 启用TLS加密,“ssl”也被接受。 $mail->Port = 587; // 连接到TCP端口 $mail->AddAddress($to); $mail->WordWrap = 50; //设置每行字符长度 $mail->IsHTML(true); // 是否HTML格式邮件 $mail->CharSet='utf-8'; //设置邮件编码 $mail->Subject =$title; //邮件主题 $mail->Body = $content; //邮件内容 $mail->AltBody = "这是一个纯文本的身体在非营利的HTML电子邮件客户端"; //邮件正文不支持HTML的备用显示 $mail->debug = true; return($mail->Send()); } }