You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel项目发送邮件报错:Method Illuminate\Mail\Mailer::failures不存在

解决Laravel中Method Illuminate\Mail\Mailer::failures does not exist报错

这个报错是因为Laravel 9及以上版本移除了Mail facade上的静态failures()方法,该方法被移到了邮件发送后返回的SentMessage实例中。

问题原因

在Laravel 8及更早版本中,可直接通过Mail::failures()获取发送失败的收件人列表,但从Laravel 9开始,邮件组件重构,这个静态方法被移除,必须从发送邮件返回的实例上调用failures()。

修复代码

先执行邮件发送并获取返回的SentMessage实例,再通过该实例调用failures():

// 替换为你的实际邮件发送逻辑,比如发送指定Mailable
$sentMessage = Mail::to($targetEmail)->send(new YourCustomMailable());

// 从实例中获取失败的收件人列表
if (!empty($sentMessage->failures())) {
    $res_data = [
        'msg' => __('Mail Send Failed'),
        'type' => 'danger'
    ];
}

return redirect()->back()->with($res_data);

注意事项

  • 如果使用队列发送邮件(Mail::queue()或Mail::later()),无法直接通过failures()获取结果,因为队列是异步执行的,需通过失败队列监控或日志排查问题。
  • 确保你的Mailable类定义正确,且邮件配置(如SMTP信息)无误,这也是邮件发送失败的常见诱因。

内容的提问来源于stack exchange,提问作者Musaf Hanif

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 11:42:04