php - 如何在 Laravel 中使用 Mail::Queue
问题描述
我想向 100 个用户发送电子邮件。Mail::send() 加载时间过长,无法覆盖用户的所有电子邮件。我正在尝试在我的应用程序中使用 Mail::queue(),但在运行时出现以下错误
php工匠队列:听。
[ErrorExcepton] 未定义属性:SuperClosure\SerializableClosure::$binding。
将 .env 文件更新为QUEUE_DRIVER = database
.
请帮助我找到解决此问题的解决方案。另外,我使用相同的代码运行后台作业,使用 Laravel 5.3。
这是我的代码
namespace App\Console\Commands;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\Mail;
use Illuminate\Support\Facades\DB;
class ProbationCronJobEmail extends Command
{
protected $signature = 'hrm:notify';
protected $description = "";
public function __construct()
{
parent::__construct();
}
public function handle()
{
$email = 'abc@gmail.com';
\Mail::queue('emails.probation',
['empname'=>'abc','id'=>'123'],function($msg) use($email){
$msg->from('abc@gmail.com');
$msg->to($email);
$msg->subject('Probation List as on '.date('Y-M-d'));
});
}
}
abc@gmail 是一个虚拟电子邮件,我使用的是我的公司电子邮件。
如果我简单输入 php artisan hrm:notify,则不会出错。
解决方案
我有一个小例子。我希望这将有所帮助。
<?php
public function mails_meeting($meeting, $group, $place, $date, $message, $user)
{
$subject = "meeting " . $group;
$cargos = Cargo::where('comision_id', '=', $meeting->comision_id)->where('active', '=', '1')->get();
foreach ($cargos as $cargo) {
$mail_reciever = $cargo->asambleista->user->email;
Mail::queue('correos.comision_mail', ['group' => $group, 'place' => $place,
'date' => $date, 'message' => $message, 'user' => $user],
function ($mail) use ($subject, $mail_reciever) {
$mail->from('siarcaf@gmail.com', 'Automatic mail system');
$mail->to($mail_reciever);
$mail->subject($subject);
});
}
return 0;
}
在 your_app/config/mail.php 中。
'sendmail' => '/usr/sbin/sendmail -bs',
'stream' => [
'ssl' => [
'allow_self_signed' => true,
'verify_peer' => false,
'verify_peer_name' => false,
],
],
.env 文件
MAIL_DRIVER=smtp
MAIL_HOST=mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=your_username
MAIL_PASSWORD=your_password
MAIL_ENCRYPTION=your_conf
推荐阅读
- java - 如何禁用 jmockit 覆盖检测
- java - ForceType 检查约束或默认值
- python - 在python中按数字对对象集进行排序
- r - 如何在闪亮的两个 renderUI 元素中观察和跟踪单个值
- css - MVC5:从actionresult动态生成.less
- python-2.7 - 如何将 BeautifulSoup 导入 Python 方法 OpenERP 7 模块
- c - C 中的哪些库需要在编译时使用 gcc 进行显式链接进行编译?
- javascript - 在日期选择器中设置 defaultDate
- python - 获取用户创建的帖子
- java - ToggleButton 的 OnCheckedChanged 监听器行为异常