laravel8(五)使用phpmailer发送邮件

简介: 博客留言系统需要用到邮件发送,有用户给我留言程序会自动给我发送邮件。很实用的一个小功能。一:下载phpmailer类库。我这里使用composer下载:有可能会失败,可以多试几次bash复制代码composer require phpmailer/phpmailer二:开始使用php复制代码/** * @name: 发送邮件方法 * @author: camellia * @date: 2022-01-19 * @param: $email string 发送给谁 * @param: $mail_title stri

博客留言系统需要用到邮件发送,有用户给我留言程序会自动给我发送邮件。很实用的一个小功能。

一:下载phpmailer类库。

我这里使用composer下载:有可能会失败,可以多试几次

bash

复制代码

composer require phpmailer/phpmailer

二:开始使用

php

复制代码

/**
     * @name: 发送邮件方法
     * @author: camellia
     * @date: 2022-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];
        }//*/
    }

我这里使用了try-catch,邮件发送失败,会返回报错信息。但是吧,他返回的报错信息你懂得~

三:开发时遇到的问题

邮件发送报错:

javascript

复制代码

SMTP Error: Could not authenticate.

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

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

欢迎访问个人博客 guanchao.site

欢迎访问我的小程序:打开微信->发现->小程序->搜索“时间里的”

目录
相关文章
|
10月前
|
PHP
laravel-发送邮件
laravel-发送邮件
130 0
|
PHP 数据安全/隐私保护
phpmailer/phpmailer 邮件发送,163SMTP设置
phpmailer/phpmailer 邮件发送,163SMTP设置
151 0
|
网络协议 安全 网络安全
SMTP邮件服务器原理解析,php发送邮件,swoole发送邮件
简单邮件传输协议 (Simple Mail Transfer Protocol 简称 SMTP) 是一个相对简单的基于文本的协议。 在发送方(客户端)和接收方(服务器)间创建TCP连接之后 那么接下来就是一个合法的SMTP会话了。(SMTP会话的本质只是一个普通TCP,只是会话的消息按照规范组装发送) 在下面的对话中,所有客户端发送的都以C:作为前缀,所有服务器发送的都以S:作为前缀。
183 0
SMTP邮件服务器原理解析,php发送邮件,swoole发送邮件
PHP:ThinkPHP使用PHPMailer发送html邮件
PHP:ThinkPHP使用PHPMailer发送html邮件
201 0
|
PHP 数据安全/隐私保护 Swift
Lumen / Laravel 使用网易邮箱 SMTP 发送邮件
Lumen / Laravel 使用网易邮箱 SMTP 发送邮件
389 0
|
PHP 开发工具 数据安全/隐私保护
PHP使用phpmailer及SMTP服务实现邮件发送
第一种是PHP通过qq邮箱或者网易邮箱的SMTP服务器来实现邮件发送。 第二种是使用phpmailer来实现邮件发送。
594 0
PHP使用phpmailer及SMTP服务实现邮件发送
laravel5.5 使用sendcloud发送邮件
laravel5.5 使用sendcloud发送邮件
|
PHP 数据安全/隐私保护 安全