laravel5.6 邮件队列database驱动简单demo
一: 邮件初始参数配置
配置 .env (demo示例是163邮箱,开启POP3和SMTP服务,获取授权密码)
MAIL_DRIVER=smtp MAIL_HOST=smtp.163.com MAIL_PORT=465 MAIL_USERNAME=你的163邮箱地址 MAIL_PASSWORD=你的163邮箱地址对应的授权密码(不是登录密码) MAIL_ENCRYPTION=ssl MAIL_FROM_ADDRESS=你的163邮箱地址
修改 .env 中的 QUEUE_DRIVER 值 (配置文件 config/queue.php 默认是同步'sync
', demo配置'database
'驱动)
QUEUE_DRIVER=database
二: 数据库建表
//队列任务表 php artisan queue:table //任务执行失败表 php artisan queue:failed-table //执行数据库迁移 php artisan migrate
三: 生成任务类
php artisan make:job SendEmail
生成之后,在handle方法中处理发送队列邮件
1 <?php 2 3 namespace App\Jobs; 4 5 use Illuminate\Bus\Queueable; 6 use Illuminate\Queue\SerializesModels; 7 use Illuminate\Queue\InteractsWithQueue; 8 use Illuminate\Contracts\Queue\ShouldQueue; 9 use Illuminate\Foundation\Bus\Dispatchable; 10 use Illuminate\Support\Facades\Mail; 11 12 class SendEmail implements ShouldQueue 13 { 14 use Dispatchable, InteractsWithQueue, Queueable, SerializesModels; 15 16 private $email; 17 18 private $content; 19 20 private $subject; 21 22 /** 23 * Create a new job instance. 24 * 25 * @return void 26 */ 27 public function __construct( $email, $content, $subject) 28 { 29 $this->email = $email; 30 $this->content = $content; 31 $this->subject = $subject; 32 } 33 34 /** 35 * Execute the job. 36 * 37 * @return void 38 */ 39 public function handle() 40 { 41 $email = $this->email; 42 $subject = $this->subject; 43 44 Mail::send( 45 'admin.emails.test', 46 ['content' => $this->content], 47 function ($message) use($email, $subject) { 48 $message->to($email)->subject($subject); 49 } 50 ); 51 52 // Mail::failures() 返回的错误邮件信息,判断是否发送成功. (无错误信息,返回空数组) 53 if(empty(Mail::failures())){ 54 dd('发送成功'); 55 }else{ 56 dd('发送失败'); 57 } 58 } 59 }
四: 对应邮件发送的控制器,任务加到队列中
1 <?php 2 namespace App\Http\Controllers\Admin; 3 4 use App\Http\Controllers\Controller; 5 use App\Jobs\SendEmail; 6 7 /** 8 * Description of BookedController 9 */ 10 class BookedController extends Controller { 11 12 public function queueSend() 13 { 14 //邮件发送demo数据 15 $data =[ 16 0=>[ 17 'email'=>'XXXXXX@qq.com', 18 'content'=>'Hello World One', 19 'subject'=>'测试标题一', 20 ], 21 1=>[ 22 'email'=>'XXXXXX@qq.com', 23 'content'=>'Hello World Two', 24 'subject'=>'测试标题二', 25 ] 26 ]; 27 28 foreach ($data as $item){ 29 //数据循环,插入表jobs中,队列初始化数据 30 dispatch(new SendEmail($item['email'],$item['content'],$item['subject'])); 31 } 32 } 33 34 }
五: 执行队列里的任务
//默认只执行一次队列请求,当请求执行完成后就终止 php artisan queue:work //监听队列请求,只要运行着,就能一直接受请求,除非手动终止 php artisan queue:listen
转载于:https://www.cnblogs.com/cxx8181602/p/10177796.html
laravel5.6 邮件队列database驱动简单demo相关推荐
- rabbitMQ消息队列 – 面板介绍及简单demo
首先rabbit安装好之后,运维会给一个控制面板. 默认账号密码为guest 登入以后可以看到具体界面. 在此鸣谢百度翻译给予的大力支持.. ###写一个简单的demo 编写之前..虽然说可以直接用底 ...
- JavaWeb开发:从购买服务器到简单demo运行
写这篇文章的目的: 一个是为了记录实施过程,方便自己日后查阅: 另一个是给项目组成员提供一个参考,方便他们以后搭建自己的项目环境: 当然若能帮助到更多的朋友,那就再好不过了:D 需要注意: 我本身也是 ...
- Asp.Net Core 快速邮件队列设计与实现
发送邮件几乎是软件系统中必不可少的功能,在Asp.Net Core 中我们可以使用MailKit发送邮件,MailKit发送邮件比较简单,网上有许多可以参考的文章,但是应该注意附件名长度,和附件名不能 ...
- 新手也能看懂,消息队列其实很简单
本文内容思维导图: 消息队列其实很简单 "RabbitMQ?""Kafka?""RocketMQ?"...在日常学习与开发过程中,我们常常听 ...
- ContentProvider总结与简单Demo
一.ContentProvider简介 当应用继承ContentProvider类,并重写该类用于提供数据和存储数据的方法,就可以向其他应用共享其数据.虽然使用其他方法也可以对外共享数 ...
- 【uboot】uboot 2020.04 DM驱动模式 -- Demo体验
文章目录 1. 前言 2. uboot的驱动模型简介 3. U_BOOT_CMD(do_demo)分析 4. 执行命令demo list 5. 执行命令demo hello 6. 执行命令demo l ...
- Exchange 2013/2016邮件队列重播操作
我们经常遇到需要将传输队列中的邮件进行重播的情况,下面简单介绍如何操作: Exchange传输邮件是先应用程序将需要发送的邮件进行一个格式转换,转换为eml格式的文本文件,然后又Pickup(分拣程序 ...
- EPSON机器人建立TCP/IP通讯的简单demo
以下为我近期研究EPSON机器人通讯的经验总结,主要实现机械手接收相机发送过来的数据,从而达到对应的位置,及其简单demo. 欢迎加入知识星球[3D视觉工坊],进行交流学习.
- redis php异步队列,基于workerman的redis-queue实现异步邮件队列
实验场景:页面被客户访问发送邮件通知到我的邮箱,该场景只是为了测试,下单发送邮件或者短信的场景都是一样的,为了体现出来队列的优越性,我自己封装了个邮件发送的接口,接口内部实现增加了sleep(5),纯 ...
最新文章
- 5.2 测试计划和估算
- Nginx配置反向代理与负载均衡
- Spring Session 的两种刷新模式-RedisFlushMode
- 一队老耗子,每个月都生一对小耗子,小耗子长3个月,第四个月开始变成老耗子开始生, 		// 假设所有耗子都不死,请问20个月之后共有多少只耗子?...
- overfitting(过度拟合)的概念
- Neo4j:找到两个纬度/经度之间的中间点
- vue-cli打包后怎么修改服务器地址实践有效
- WordPress主题 RiPro v5.0高级付费素材资源类主题
- 计算机作曲 研究生 武汉音乐学院,计算机音乐作曲(武汉音乐学院2021年招收攻读硕士学位研究生考试大纲)...
- 服务器本地文件传输,服务器 本地 文件传输
- 多核Cache一致性 伪共享 atomic的实现和cache相关的部分
- 偏最小二乘法 Partial Least Squares
- 求1到n之间的质数(素数)
- 比较好些的计算机论文题目,计算机论文题目大全(24页)-原创力文档
- 半小时漫画股票实战法观看记录,观看更新
- ie不能加载java_解决IE中页面Java无法加载的问题
- 用什么词典可以翻译php,PHP调用有道词典翻译API实现通译功能及代码
- 网络电话免费打 【推荐】
- SyntaxError: Missing parentheses in call to ‘print‘. Did you mean print(e)?
- 尚硅谷es6新特性笔记
热门文章
- 鸿蒙os编码_如何看待鸿蒙OS代码示例?
- 一些Vue开发小技巧,让你开发更便捷
- Spring 中注入什么意思?
- C - 数据结构实验之栈与队列三:后缀式求值
- qt种qdebug字符串_qDebug用法及中文乱码解决
- 电脑怎么彻底删除软件_电脑强力卸载工具,删除电脑无用软件,让电脑更加快捷顺畅...
- mysql写php木马_PHP一句话木马小总结与SQL语句写一句话木马
- Redux 中 combineReducers实现原理
- Java中数字格式化format方法
- C++中STL-队列和优先队列