我想使用laravel计划程序将电子邮件批量发送到许多(大约300-600)邮件中,为此,我创建了一个与laravel的任务计划程序一起运行的命令。
对于我的邮件API,我使用的是laravel的Mailgun API集成,Mailgun可让您发送邮件。
我还想运行通过队列发送的邮件,使用队列的afaik专门用于执行繁重的任务,例如发送邮件。
对于我的问题,这是一种使用laravel Scheduler发送多封邮件的好方法吗?
我的每封邮件都会正确发送到队列中进行分派吗?
当我运行php artisan schedule:运行本地我的开发机器(Windws)时,我收到以下消息:
C:\xampp\htdocs\dtcburger.com>php artisan schedule:run
Running scheduled command: "C:\xampp\php\php.exe" "artisan" App\Console\SendWeeklyMail1 > "NUL" 2>&1
但是此后没有任何反应,我还没有收到任何电子邮件。
我发送邮件的命令:
<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
use Mail;
use App\Models\Event;
use App\Models\Discount;
use App\Models\General;
use App\Models\Sub;
use App\Mail\weekly\WeeklyMail1;
class SendWeeklyMail1 extends Command
{
protected $signature = 'emails:weekly';
protected $description = "What's new this week? send weekly emails to subbed users";
public function __construct()
{
parent::__construct();
}
public function handle()
{
$emails = [ 'zipizape@gmail.com', 'zipizape@gmail.com', 'zipizape@gmail.com',
'zipizape@gmail.com', 'zipizape@gmail.com', 'zipizape@gmail.com',
'zipizape@gmail.com', 'zipizape@gmail.com', 'zipizape@gmail.com',
'zipizape@gmail.com', 'zipizape@gmail.com', 'zipizape@gmail.com',
'zipizape@gmail.com', 'zipizape@gmail.com', 'zipizape@gmail.com',
'zipizape@gmail.com', 'zipizape@gmail.com', 'zipizape@gmail.com' ];
$mailData = [
'subject' => 'Últimas novedades en '.env('APP_NAME'),
'events' => $events,
'discounts' => $discounts,
];
foreach ($emails as $email)
{
Mail::to( $email )->queue(new WeeklyMail1($mailData));
};
}
}
内核文件:
protected $commands = [
'App\Console\Commands\SendWeeklyMail1',
'App\Console\Commands\SendBulletinMail1',
];
protected function schedule(Schedule $schedule)
{
$schedule->command(SendWeeklyMail1::class);
}