簡體   English   中英

Laravel - 排隊的電子郵件不起作用

[英]Laravel - Email queued doesn't work

我有一個發送幾封電子郵件的應用程序,有時它會返回一個超時錯誤。 所以我認為解決方案就是在后台發送電子郵件並排隊,但我遇到了實施問題。

例如在我的控制器中我有這個並且有效:

$data = array(
            'name' => $tecnic->name,
            'email' => $tecnic->email,
            'code' => $code
          );
Mail::send('email-to-tecnico', $data, function($message) use ($data)
        {
          $message->from('no-reply@domain.pt' , 'Title');
          $message->to($data['email'], $data['name'])->subject('subject');

        });

接下來,我創建一個Job SendStartPatEmail並添加:

use Mail;
class SendStartPatEmail implements ShouldQueue
{
    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;

    private $data;
    /**
     * Create a new job instance.
     *
     * @return void
     */
    public function __construct($data)
    {
      $this->data = $data;
    }

    /**
     * Execute the job.
     *
     * @return void
     */
    public function handle(Mailer $mailer)
    {
      Mail::send('email-to-tecnico', $data, function($message) use ($data)
      {
        $message->from('no-reply@domain.pt' , 'Title');

        $message->to($data['email'], $data['name'])->subject('Subject');

      });
    }
}

在控制器中我刪除Mail :: send並添加:

SendStartPatEmail::dispatch($data);

當我運行此作業時,作業是在作業表中創建的,但不發送電子郵件,嘗試列為0。

這不會返回任何錯誤。

我做錯了什么?

要在jobs表中運行排隊的作業,您需要運行php artisan queue:work

我建議閱讀有關主管的文檔,以確保工作人員始終在您需要的項目上運行:

Laravel Supervisor配置

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM