gpt4 book ai didi

laravel - 无法让 Laravel Mail::to()->later() 工作

转载 作者:可可西里 更新时间:2023-11-01 11:24:35 25 4
gpt4 key购买 nike

我正在尝试使用以下代码通过 Redis 队列和 Mailgun 发送延时电子邮件...

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

我可以看到该作业已添加到 redis 队列(使用 Redis 桌面管理器)并在队列中停留 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');
}
}

如果有任何意见,我将不胜感激。

最佳答案

我忘记查看 failed_jobs 表,它给了我我需要的线索......

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

由于传递给 DemoRequestFollowUp 构造函数的 DemoDownloader 实例实际上并未被使用,因此我删除了参数并删除了 $requestee 类的公共(public)属性及其在构造函​​数中的赋值。进行这些更改后,电子邮件会在指定的延迟间隔过后可靠地到达。

关于laravel - 无法让 Laravel Mail::to()->later() 工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50513780/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com