gpt4 book ai didi

Laravel Mailer 使用队列时的回调

转载 作者:行者123 更新时间:2023-12-02 11:16:46 27 4
gpt4 key购买 nike

有没有办法将回调函数传递给 Laravel 的邮件程序?

我正在将 Mail 外观与可邮寄类一起使用,该类正在发送附件。我想在发送电子邮件后删除附件形式的存储。

电子邮件作业正在排队

Mail::to($user)->send(new MyMailable($file));

我无法使用 Mailer 触发事件 ( https://laravel.com/docs/5.4/mail#events )。原因之一是,该事件发生在电子邮件发送之前,这意味着我当时无法删除该文件,或者该消息不会包含附件。其次,该应用程序有多个电子邮件作业,其中一些作业必须删除附件,而另一些则不能。事件数据仅包含 swiftmailer 实例,没有有关作业本身的额外信息(例如 mailable 中的数据)。

最佳答案

Laravel 在发送电子邮件时立即触发一个事件。这并不意味着消息已排队,或者用户收到了消息,而是消息已被发送。

弹出您的 EventServiceProvider 并将以下内容添加到 $listen 数组中:

'Illuminate\Mail\Events\MessageSending' => [
'App\Listeners\HandleSentMessage',
],

然后在 HandleSentMessage 监听器的 public function handle() 方法中,接受 MessageSending $event 作为第一个参数,例如:

public function handle(MessageSending $event) {
//do whatever with the event data
}

关于Laravel Mailer 使用队列时的回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44293029/

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