欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

thinkphp实现邮箱发送

程序员文章站 2022-07-08 11:50:59
...

thinkphp5实现邮件发送

先说一下客户端授权码:
thinkphp实现邮箱发送
1,必须完成的一个:打开自己的扣扣邮箱首页:点击 设置 然后 点击账户 划到有 POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务 这个地方 ,点击开启这两个服务。
2,POP3/SMTP服务 (如何使用 Foxmail 等软件收发邮件?)
3,IMAP/SMTP服务 (什么是 IMAP,它又是如何设置?)
然后:就会有一个温馨提示:在第三方登录QQ邮箱,可能存在邮件泄露风险,甚至危害Apple ID安全,建议使用QQ邮箱手机版登录。
继续获取授权码登录第三方客户端邮箱 。 生成授权码 ,这个授权码就是客户端授权码 下面代码的授权码( $sendmailpswd)

第一步:
thinkphp实现邮箱发送
码云下载PHPMailer 安装的最新版本6.0,安装在根目录,打开安装好的PHPMailer 目录,进入src目录,将Exceptino.php , PHPMailer.php, SMTP.php三个文件放在extend目录下新建的PHPMailer目录,同时三个命名空间改成 namespace PHPMailer;
thinkphp实现邮箱发送
达到这一步配置就完成了。接下来就是发送邮件代码了,

第二部:直接上代码QQ邮箱发送验证码
先引入
thinkphp实现邮箱发送
完整代码图片:

完整代码
```public function loginByEmail(){
        $captcha = '96358';  //自定发送的验证码((可以自己生成一个随机数字验证码))
        $email = 'aaa@qq.comcom';  //XXXXXXX收件人邮箱(免掉前端代码传值,直接发给某一个人)
        $toemail=$email;//定义收件人的邮箱
        $sendmail = 'aaa@qq.com'; //发件人邮箱
        $sendmailpswd = "qnxxxxxxxxagi"; //客户端授权密码,不是邮箱的登录密码,
        $send_name = 'Cherry';// 设置发件人信息,如邮件格式说明中的发件人,
        $to_name = '小张';//设置收件人信息,如邮件格式说明中的收件人
        $mail = new PHPMailer();
        $mail->isSMTP();// 使用SMTP服务
        $mail->CharSet = "utf8";// 编码格式为utf8,不设置编码的话,中文会出现乱码
        $mail->Host = "SMTP.qq.com";// 发送方的SMTP服务器地址
        $mail->SMTPAuth = true;// 是否使用身份验证
        $mail->Username = $sendmail;//// 发送方的
        $mail->Password = $sendmailpswd;//客户端授权密码,不是邮箱的登录密码!
        $mail->SMTPSecure = "ssl";// 使用ssl协议方式
        $mail->Port = 465;//  sina端口110或25) //qq  465 587
        $mail->setFrom($sendmail, $send_name);// 设置发件人信息,如邮件格式说明中的发件人,
        $mail->addAddress($toemail, $to_name);// 设置收件人信息,如邮件格式说明中的收件人,
        $mail->addReplyTo($sendmail, $send_name);// 设置回复人信息,指的是收件人收到邮件后,如果要回复,回复邮件将发送到的邮箱地址
        $mail->Subject = "测试邮箱标题!";// 邮件标题
        //$code=$code;
        // session("code",$code);
        //return $code."----".session("code");

        /*$com = new Common();
        //获取随机数字验证码
        $captcha = $com->getRandomNum();
        $html_body = '您的验证码为:' . $captcha . ',5分钟内有效';*/

        $mail->Body = "您好,您的验证码是: $captcha 记得回复我哟!么么哒...";// 邮件正文
        //$mail->AltBody = "This is the plain text纯文本";// 这个是设置纯文本方式显示的正文内容,如果不支持Html方式,就会用到这个,基本无用
        if(!$mail->send()){

            $this->success(400,$mail->ErrorInfo);//返回数据格式自己定义的一个函数

        }else{
            $this->success("验证码已经发送,请注意查收");
        }
    }