网上看到到各路大神都总结的很详细,自己项目也用到过一次这个功能,就直接把整理好的代码分享一下
因为tp5需要命名空间支持,我的phpmailer类已经加好了命名空间,下载后解压直接放到vendor 目录下即可直接在控制器调用就行。
百度网盘地址:https://pan.baidu.com/s/1eI0wqv9ydJQyayyUfyljKg
至于基础的qq smtp设置我就不做赘述,qq邮箱设置里面可以直接找到(貌似新浪,163等所有的邮箱smtp开启方式都大同小异,基本都是在设置里面,而且同时在开启的时候都需要获取授权码【重点:在引用的时候需要设置邮箱的账号和密码,此处的密码并非指邮箱密码,就是指这个授权码,当初问了这东西折腾我好久】)。废话不多说,直接上代码:
首先需要在头部use一下
use phpmailer\phpmailer;
public function sendEmail($data = []) { Vendor('phpmailer.phpmailer'); $mail = new PHPMailer(); //实例化 $mail->IsSMTP(); // 启用SMTP $mail->Host = 'smtp.qq.com'; //SMTP服务器 以qq邮箱为例子 $mail->Port = 465; //邮件发送端口 $mail->SMTPAuth = true; //启用SMTP认证 $mail->SMTPSecure = "ssl"; // 设置安全验证方式为ssl $mail->CharSet = "UTF-8"; //字符集 $mail->Encoding = "base64"; //编码方式 $mail->Username = '*******@qq.com'; //你的邮箱 $mail->Password = '*******'; //你的密码 ==>重点:是授权码,不是邮箱密码 $mail->Subject = '邮箱验证'; //邮件标题 $mail->From = '*******@qq.com'; //发件人地址(也就是你的邮箱) $mail->FromName = '优倍素材网'; //发件人姓名 if($data && is_array($data)){ foreach ($data as $k=>$v){ $mail->AddAddress($v['user_email'], "亲"); //添加收件人(地址,昵称) $mail->IsHTML(true); //支持html格式内容 $mail->Body = $v['content']; //邮件主体内容 //发送成功就删除 if ($mail->Send()) { //echo "Mailer Error: ".$mail->ErrorInfo;// 输出错误信息,用以邮件发送不成功问题排查 return 1; }else{ return -1; } } } }
接下来是引用,前端文件传入一个邮箱地址:
public function bangding(){ $eq_num = rand(100000,999999); $send_data = [ 'user_email' => $postdata['mail'], 'content' => '您正在申请优倍素材网邮箱验证,此次操作验证码是'.$eq_num.",如非本人操作,请勿理会。" ]; $send_effect = $this->sendEmail([$send_data]); if($send_effect){ return ['code'=>1,'msg'=>'邮件发送成功,请注意查收']; }else{ return ['code'=>-1,'msg'=>'邮件发送失败,请联管理员']; } }
学习参考:https://www.51sucai.com.cn/home/caselist/casedetail/caseid/68.shtml
分享一个学习网站:优倍素材网;汇总了网上最常用的素材使用方法