发送邮件

邮件配置 .env

发送邮件使用 25 端口,或者 465 端口

  • 465 配置方式
    MAIL_DRIVER=smtp
    MAIL_HOST=smtp.qq.com
    MAIL_PORT=465
    MAIL_USERNAME=309078303@qq.com
    MAIL_PASSWORD=ofg-----caei // 邮箱授权码
    MAIL_ENCRYPTION=ssl
    MAIL_FROM_ADDRESS=309078303@qq.com // 发件人邮箱
    MAIL_FROM_NAME=发件人名称
  • 25 配置方式
    MAIL_DRIVER=smtp
    MAIL_HOST=smtp.qq.com
    MAIL_PORT=25
    MAIL_USERNAME=309078303@qq.com
    MAIL_PASSWORD=ofg-----caei // 邮箱授权码
    MAIL_ENCRYPTION=null
    MAIL_FROM_ADDRESS=309078303@qq.com // 发件人邮箱
    MAIL_FROM_NAME=发件人名称

创建邮件 view

在 view 中添加 mail-msg.blade.php 文件

创建邮件

php artisan make:mail MsgMail
<?php

namespace App\Mail;

use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;

class MsgMail extends Mailable
{
    use Queueable, SerializesModels;

    protected $aToUsers;
    /**
     * Create a new message instance.
     *
     * @return void
     */
    public function __construct($aToUsers)
    {
        $this->aToUsers = $aToUsers;
    }

    /**
     * Build the message.
     *
     * @return $this
     */
    public function build()
    {
        // 主题
        $this->subject('邮件主题');
        // 收件人
        $this->to($this->aToUsers);
        // 抄送人
        $this->cc(['test@qq.com']);
        // 密送人
        $this->bcc(['test@qq.com']);

        // 附件 使用绝对路径
        $this->attach('D:\www\lara_es\public\test5.jpg');

        /**
         * storage 路径添加附件
         * 默认 storage/app 路径前缀,补足后面的路径即可
         * 前缀具体看 app/config/filesystems.php 中 local.root 的配置
         */
        $this->attachFromStorage('public/test5.jpg');

        return $this->view('mail-msg');
    }
}

在控制器中使用

<?php

namespace App\Http\Controllers;

use App\Mail\MsgMail;
use Illuminate\Support\Facades\Mail;

class TestController extends Controller
{
   public function index(){
       // 直接发送
       Mail::send(new MsgMail(['test@qq.com']));
       // 队列方式发送
       Mail::queue(new MsgMail(['test@qq.com']));
   }
}

使用队列发送

  • 安装 predis
    compoer require predis/predis
  • 配置env
    # 修改此项
    QUEUE_CONNECTION=redis
    # 添加此项
    REDIS_CLIENT=predis
  • 开启队列
    php artisan queue:work --tries=3
本作品采用《CC 协议》,转载必须注明作者和本文链接
喜欢的话就点个赞吧!
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 1

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!