介绍
这篇文章将为大家详细讲解有关怎么在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中使用队列实现一个邮件发送功能