怎么在Laravel中使用队列实现一个邮件发送功能

  介绍

这篇文章将为大家详细讲解有关怎么在Laravel中使用队列实现一个邮件发送功能,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

<强> 1,配置文件配置/队列。php

& lt; php ?      return  [         ,& # 39;默认# 39;,=祝辞,env (& # 39; QUEUE_DRIVER& # 39;,, & # 39;同步# 39;),      ,& # 39;连接# 39;,=祝辞,(      ,& # 39;同步# 39;,=祝辞,(   & # 39;才能司机# 39;,=祝辞,& # 39;同步# 39;   ,),      ,& # 39;数据库# 39;,=祝辞,(   & # 39;才能司机# 39;,=祝辞,& # 39;数据库# 39;   & # 39;才能表# 39;,=祝辞,& # 39;工作# 39;   & # 39;才能队列# 39;,=祝辞,& # 39;默认# 39;   & # 39;才能retry_after& # 39;,=祝辞,90年,   ,),      ,& # 39;beanstalkd& # 39;,=祝辞,(   & # 39;才能司机# 39;,=祝辞,& # 39;beanstalkd& # 39;   & # 39;才能举办# 39;,=祝辞,& # 39;localhost # 39;   & # 39;才能队列# 39;,=祝辞,& # 39;默认# 39;   & # 39;才能retry_after& # 39;,=祝辞,90年,   ,),      ,& # 39;sqs # 39;,=祝辞,(   & # 39;才能司机# 39;,=祝辞,& # 39;sqs # 39;   & # 39;才能关键# 39;,=祝辞,& # 39;your-public-key& # 39;   & # 39;才能秘密# 39;,=祝辞,& # 39;your-secret-key& # 39;   & # 39;才能前缀# 39;,=祝辞,& # 39;https://sqs.us -东- 1. amazonaws.com/your -账户- id,,   & # 39;才能队列# 39;,=祝辞,& # 39;your-queue-name& # 39;   & # 39;才能地区# 39;,=祝辞,& # 39;us-east-1& # 39;   ,),      ,& # 39;复述,,,=祝辞,(   & # 39;才能司机# 39;,=祝辞,& # 39;复述,# 39;   & # 39;才能连接,,=祝辞,& # 39;默认# 39;   & # 39;才能队列# 39;,=祝辞,& # 39;默认# 39;   & # 39;才能retry_after& # 39;,=祝辞,90年,   ,),      ,),            ,& # 39;失败# 39;,=祝辞,(   ,& # 39;数据库# 39;,=祝辞,env (& # 39; DB_CONNECTION& # 39;,, & # 39; mysql # 39;),   ,& # 39;表# 39;,=祝辞,& # 39;failed_jobs& # 39;   ,),      ];

配置文件默认使用的是同步驱动同步,每一种队列驱动的配置都可以在该文件中找的到,包括数据库,Beanstalkd, Amazon SQS,复述。其中还包含了一个零队列驱动用于那些放弃队列的任务fail配置项用于配置失败队列任务存放的数据库及数据表。接下来我们需要创建一个队列任务类。具体配置可以参考文档队列驱动配置

<强> 2,创建队列任务类,之后会在app/工作目录下生成一个SendEmail。php的文件

php  artisan : job  SendEmail & lt; php ?      namespace 应用\工作;      use 应用\用户;   use 照亮\汽车\ Queueable;   use 照亮\ \ SerializesModels队列;   use 照亮\ \ InteractsWithQueue队列;   use 照亮\ \队列\ ShouldQueue合同;   use 照亮\ \汽车\基础可分派;   use 阐明\ \外墙\邮件的支持;      class  SendEmail  implements  ShouldQueue   {   ,use 可分派,InteractsWithQueue,, Queueable,, SerializesModels;   美元,protected 用户;/* *   ,* Create  a  new  job 实例。   ,*   ,* @return 空白   ,*/,public  function  __construct (User 美元用户)   ,{   ,$ this→user =, $用户;   ,}/* *   ,*执行队列的方法,比如发送邮件   ,*   ,* @return 空白   ,*/,public  function 处理()   ,{   美元,美元user =,这→用户;   ,   ,邮件::生(& # 39;这里填写邮件的内容& # 39;,function (消息){//,才能发件人(你自己的邮箱和名称)   美元才能信息→(& # 39;your_email@163.com& # 39;,, & # 39; yourname& # 39;);//,才能收件人的邮箱地址   美元才能信息→($ this→用户);//才能,邮件主题   信息→美元才能主题(& # 39;队列发送邮件& # 39;);   ,});   ,}   }

任务类创建完之后到控制器把数据加入到队列

<强> 3,创建发送消息的控制器使用派遣方法手动分发任务,方法里传一个任务类的实例

& lt; php ?      namespace 应用\ Http \控制器;   use 应用\ \ SendEmail工作;   use 应用\用户;      class  MessageController  extends 控制器   {   ,public  function 指数()   ,{=,美元user 用户:发现(1);      ,这个→美元分派(new  SendEmail(用户)美元);   ,}   }

怎么在Laravel中使用队列实现一个邮件发送功能