Не удается заставить Laravel Mail :: to () -> позже () работать - PullRequest
0 голосов
/ 24 мая 2018

Я пытаюсь отправить сообщение с задержкой по времени через очередь Redis и Mailgun, используя следующий код ...

$when = \Carbon\Carbon::now()->addMinutes(5);
Mail::to($demoDownloader->Email)->later($when, new DemoRequestFollowUp($demoDownloader));

Я вижу, что задание добавлено в очередь redis (используяRedis Desktop Manager) и остается в очереди в течение 5 минут, прежде чем исчезнуть из очереди.К сожалению, он никогда не появляется в журналах Mailgun.

Если я вместо этого использую эту строку кода ...

Mail::to($demoDownloader->Email)->send(new DemoRequestFollowUp($demoDownloader));

..., тогда электронное письмо появляется в журналах Mailgun и впоследствии приходитв почтовом ящике назначения успешно (минус задержка, конечно).

Сообщения об ошибках не записываются в storage / logs / laravel.log, поэтому я немного растерялся, почему это не работает.Я почти уверен, что использовал синтаксис, указанный в руководстве.

Кстати, мой почтовый ящик выглядит так ...

<?php

namespace App\Mail;

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

class DemoRequestFollowUp extends Mailable
{
    use Queueable, SerializesModels;

    public $requestee;

    public function __construct(DemoDownloader $requestee)
    {
        $this->requestee = $requestee;
    }

    public function build()
    {
        return $this->subject('Overview')
                    ->view('email-demo-request-follow-up');
    }
}

Я был бы очень признателен залюбой ввод.

1 Ответ

0 голосов
/ 25 мая 2018

Я бы не стал смотреть в таблицу failed_jobs, которая дала мне подсказку, в которой я нуждался ...

Illuminate\Database\Eloquent\ModelNotFoundException: No query results for model [App\DemoDownloader]

Поскольку экземпляр DemoDownloader передавался в конструктор DemoRequestFollowUp, это не былоНа самом деле я удалил аргумент, а также удалил открытое свойство $requestee из класса и его присваивание в конструкторе.После внесения этих изменений электронные письма надежно поступали после истечения указанного интервала задержки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...