简体   繁体   English

使用队列方法发送邮件,但直接发送

[英]Send mail with queue method but it's sending directly

I'm try to send mails after jobs finished, but I like send to queue. 作业完成后,我尝试发送邮件,但是我喜欢发送到队列。 But my code send directly. 但是我的代码直接发送。

My code it's according Queueing Mail 我的代码是根据排队邮件发送的

Mail::to($request->user())
    ->cc($moreUsers)
    ->bcc($evenMoreUsers)
    ->queue(new OrderShipped($order));

Well this it's process 好吧,这就是过程

app\\Mail\\CpJobFinished.php app \\ Mail \\ CpJobFinished.php

<?php
namespace App\Mail;

use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
...

class CpJobFinished extends Mailable implements ShouldQueue
{
    use  SerializesModels, Queueable;

    ...
    // Some code for formating message 

On one Command class \\app\\Console\\Commands\\CpRsyncJobs 在一个Command类上\\ app \\ Console \\ Commands \\ CpRsyncJobs

<?php
namespace App\Console\Commands;

use App\Mail\CpJobFinished;
use Illuminate\Support\Facades\Mail;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\Artisan;
...

class CpRsyncJobs extends Command

Mail::to($email)->queue(new CpJobFinished($job));

But with this code mail it's send directly instead send to queue. 但是使用此代码邮件,它将直接发送,而不是发送到队列。 Of course, queues are active, work for other task, 当然,队列处于活动状态,可以执行其他任务,

Error on declaration of Class mailable. 声明可邮寄类时出错。

When this code, mail it's send to queue. 收到此代码后,邮件将发送到队列。

app\\Mail\\CpJobFinished.php app \\ Mail \\ CpJobFinished.php

<?php
namespace App\Mail;

use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
...

class CpJobFinished extends Mailable // implements ShouldQueue 
{
     use Queueable, SerializesModels;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM