laravel8(五)使用phpmailer发送邮件

39 篇文章 0 订阅
30 篇文章 1 订阅

一:下载phpmailer类库。

我这里使用composer下载:

composer require phpmailer/phpmailer

二:开始使用

/**
     * @name: 发送邮件方法
     * @author: camellia
     * @date: 2021-01-19 
     * @param:  $email  string  发送给谁
     * @param:  $mail_title string  邮件标题
     * @param:  $mail_body  string  邮件内容
     * @return: $result bool    true/false
     */
    public function send_mail($email, $mail_title, $mail_body)
    {
        $mail = new PHPMailer(true);
        try {
            /*
             * 【一】服务器配置
             */
            $mail->CharSet ="UTF-8";                                         //设定邮件编码
            $mail->SMTPDebug = 0;                                            //调试模式输出:0 不输出,2 输出
            $mail->isSMTP();                                                 //使用SMTP
            $mail->Host = EMAIL_SERVER;                                     // SMTP服务器:以QQ为例
            $mail->SMTPAuth = true;                                          // 允许 SMTP 认证
            $mail->Username = SEND_EMAIL;                                       // SMTP用户名: 即发送方的邮箱
            $mail->Password = EMAIL_SECERT;                                 // SMTP授权码: 即发送方的邮箱授权码
            $mail->SMTPSecure = 'ssl';                                       // 允许 TLS 或者ssl协议
            $mail->Port = 465;//*/                                               // 服务器端口: 25 或者465 或者587 具体要看邮箱服务器支持
 
            /*
             * 【二】收件人
             */
            $mail->setFrom(SEND_EMAIL, "Mailer");              //发件人:邮箱与用户名
            $mail->addAddress($email, 'Mailer');     //收件人1:可添加多个收件人//*/
            //$mail->addAddress("收件人2的邮箱", '收件人2的用户名');                  //收件人2:可添加多个收件人
 
            //$mail->addReplyTo('xxxx@163.com', 'info');                          //回复的时候回复给哪个邮箱 建议和发件人一致
            //$mail->addCC('cc@example.com');                                     //抄送人
            //$mail->addBCC('bcc@example.com');                                   //密送人
 
            /*
             * 【三】发送附件
             */
             /*$mail->addAttachment('王庆国.mp4');           // 添加附件//*/
             //$mail->addAttachment('fzs.png', 'haha.png');     // 发送附件并且重命名
 
            /*
             * 【四】发送内容
             */
            $mail->isHTML(true);    //是否以HTML文档格式发送  发送后客户端可直接显示对应HTML内容
            $mail->Subject = $mail_title;   //邮件标题
            $mail->Body    = $mail_body;      //邮件内容
            $mail->AltBody = '哈哈哈';      //邮件内容:如果邮件客户端不支持HTML则显示此内容//*/
 
            /*
             * 【五】发送请求
             */
            $mail->send();
            return true;//*/
        } 
        catch (Exception $e) 
        {
            return ['msg' => '邮件发送失败:'.$mail->ErrorInfo];
        }//*/
    }

邮件发送失败,会返回报错信息。

三:问题

邮件发送报错:

SMTP Error: Could not authenticate.

解决方法:重置邮箱秘钥即可

有好的建议,请在下方输入你的评论。

欢迎访问个人博客
https://guanchao.site

欢迎访问小程序:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值