TP6使用邮件类发送邮件
一、开启SMTP服务(使用php发送邮件需要用到SMTP服务,这里以QQ邮箱的SMTP服务为例)
1.登录qq邮箱,在首页上找到“设置”。
2.选择开启的服务,一般都全选,POP3/SMTP/IMAP,开启SMTP服务就得先开通客户授权码。
3.点击开通客户授权码,选择开启
4.需要手机验证码,需要绑定手机号。
5.SMTP服务需要输入客户端授权密码,这个密码就是是你在第三方客户端上的邮箱登录密码(在后面使用phpmailer发送邮件时会用到),如果在第三方客户端上输入之前的邮箱登录密码就会出错。
6.设置完客户端授权密码后就成功开通了SMTP服务
二、首先下载phpmailer压缩包
在tp6的项目中的extend目录下新建一个phpmailer文件夹
composer require phpmailer/phpmailer
然后把phpmailer.php 和smtp.php文件复制到目录下(只有这两个文件有用) 修改命名空间
添加phpmailer中添加 use think\Exception
此外要确保安装了 openssl扩展
三、发送邮件函数
/** * [向邮箱发送验证码] * @param [String] $email [目标emial] * @param [Number] $code [验证码] * @return [json] [执行结果] */ public function sendCodeToEmail($email, $code) { $toemail = $email; $mail = new PHPMailer(); $mail->isSMTP(); //使用smtp鉴权方式发送邮件 $mail->CharSet = 'utf8'; //设置编码 $mail->Host = 'smtp.qq.com'; //qq邮箱smtp邮箱 $mail->SMTPAuth = true; //是否需要认证身份 $mail->Username = "123456789@qq.com"; //发送方邮箱 $mail->Password = "**********"; //发送方smtp密码 $mail->SMTPSecure = 'ssl'; //使用的协议 $mail->Port = 465; //qq邮箱接收的端口号 $mail->setFrom('123456789@qq.com', '验证码发送'); //定义邮件及标题(不同邮件标题显示不一致) $mail->addAddress($toemail, '您好!'); //要发送的地址和设置地址的昵称 $mail->addReplyTo('123456789@qq.com', 'Replay'); //回复地址 $mail->Subject = "您有新的验证码!"; //添加该邮件的主题 $mail->Body = "您的验证码是" . $code . ",验证码的有效期为600秒,本邮件请勿回复!"; //该邮件内容 //如果发送失败 if (!$mail->send()) { $this->return_msg(400, $mail->ErrorInfo); } else { $this->return_msg(200, '验证码发送成功,请注意查收!'); } }
通往牛逼的路上,在意的只有远方!