前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >关于Laravel使用队列后台发送邮件

关于Laravel使用队列后台发送邮件

作者头像
无道
发布2019-11-13 16:46:37
1.6K0
发布2019-11-13 16:46:37
举报
文章被收录于专栏:无道编程

今天要用到后台使用队列发送邮件,于是又稍微去了解了下Laravel中使用队列。其实在最开始用Laravel写博客【 https://www.misiyu.cn 】已经了解过了,但当时既不知其然,更不知其所以然。

代码是真的写得一团糟,当然,博客是我第一次使用Laravel写一个完整的、稍微大型点的系统。并且但是对于Laravel的很多东西都不熟悉,不理解。

到了如今手里的项目,已经是第三个了,总算感觉明白Laravel是 优雅在哪个地方了。

正题

方法一

队列形式

步骤:

  • 该方法需要先创建一个job php artisan make:job SendEmail 然后在app/jobs目录下就有一个类了,该类有一个handle方法,该方法就是具体要在队列中处理的任务逻辑
  • 创建一个邮件类 php artisan make:mail SendReportReply --markdown=mails.ReportReply 该类会在app/mail目录下有一个SendReportReply类,后面的参数--markdown=mails.ReportReply是说该邮件内容是md格式编写,由Laravel解析成html
  • 然后我们需要怎样把邮件添加到队列呢? 我们需要在Job(SendEmail)类的handle方法里面这样书写: Mail::to('admin@misiyu.cn')->send(new SendReportReply());

然后将该Job分配到队列中,队列分配、运行可以参考我的这篇文章:https://cloud.tencent.com/developer/article/1538361 ,其它就不多说了

  • 关于队列分配我想强调的一点,有两种方法,都是一样的 // 使用dispatch() 帮助函数,该函数需要一个任务类的实例对象 dispatch(new SendEmail()) // 或者 $this->dispatch() 该方法在控制器中被定义,和dispatch帮助函数的使用一致 $this->dispatch(new SendEmail())
方法二

使用Mail的门面集成函数

代码语言:javascript
复制
// 使用 Mail 门面的queue、later 邮件入队列,可以少生成任务类(就是app/Jobs)
// Mail 邮件入队列的 两个方法 queue 、later
Mail::to('admin@misiyu.cn')->queue(new SendReportReply());
// later 延迟发送邮件
Mail::to('admin@misiyu.cn')->later($when,new SendReportReply());

Mail有提供两个queue 和later,我们就直接将new SendReportReply()实例分发到队列中了,也即是说,该方法不用创建一个Job类。所以我更推荐第二种方法

如果没查文档,没百度,也许不少新手就会使用第一种方法。但其实第二种方法更简单。

另外需要说的是,Mail不止有to和queue、later方法,还可以通过链式调用「to」、「cc」、「bcc」一次性指定抄送和密送收件人。

代码语言:javascript
复制
Mail::to($request->user())
    ->cc($moreUsers)
    ->bcc($evenMoreUsers)
    ->send(new OrderShipped($order));

更多方法,可以参考中文文档(5.8):https://learnku.com/index.php/docs/laravel/5.8/mail/3920#sending-mail

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-10-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 正题
    • 方法一
      • 方法二
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档