安排发送多个排队的邮件

时间:2019-04-23 23:54:33

标签: php laravel

我想使用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);
    }

0 个答案:

没有答案