0

我的邮件 laravel 是这样的:

<?php
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
class OrderReceivedMail extends Mailable implements ShouldQueue
{
    use Queueable, SerializesModels;
    public $order;
    public $store;
    public function __construct($order, $store)
    {
        $this->order = $order;
        $this->store = $store;
        $this->subject('subject');
    }
    public function build()
    {
        $company_email = explode(',',config('app.mail_company'));
        return $this->view('vendor.notifications.mail.email-order-received',['number'=>$this->order->number, 'store_name' => $this->store->name])->bcc($company_email);
    }
}

我的环境是这样的:

BROADCAST_DRIVER=pusher
CACHE_DRIVER=redis
SESSION_DRIVER=file
QUEUE_DRIVER=redis

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

如果代码执行,它不起作用。电子邮件发送失败或邮件代码未执行

但是,如果我删除implements ShouldQueue,它可以工作。邮件发送成功

为什么如果我使用 shouldqueue 它不起作用?

4

1 回答 1

0

使用ShouldQueue您的电子邮件时不会立即发送。您需要php artisan queue:work按照此处所述运行队列工作程序https://laravel.com/docs/5.5/queues#running-the-queue-worker

于 2017-11-28T14:51:15.863 回答