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

Laravel新增订单后发送邮件功能问题求助

Laravel订单邮件发送问题解决方案

嘿,我来帮你搞定这个新增订单后发送邮件的问题!先看你的代码,主要有两个关键问题需要修正,再给你补充几个检查点:

核心代码修正

你的代码里有两个明显的错误:

  1. 闭包函数无法直接访问外部的$data变量,需要用use($data)将变量传入闭包
  2. $data是数组,你却用了对象的访问方式$data->omail,应该改为数组索引$data['omail']

修正后的控制器代码如下:

$data = [ 
    'name' => "Username", 
    'omail' => $request->ordermail, 
    'onumber' => $request->ordernumber 
];
Mail::send('mail', $data, function($message) use ($data) {
    $message->to($data['omail'], 'User Name')->subject('Order updated');
    $message->from('noreply@example.com','Name');
});

额外检查事项

除了代码修正,这些环节也可能导致邮件发送失败:

  • 视图文件检查:确认resources/views/mail.blade.php存在,并且视图里正确使用了传递的变量,比如用{{ $name }}、{{ $onumber }}来显示内容
  • 邮件配置验证:检查.env文件中的邮件配置项,比如SMTP驱动的MAIL_HOST、MAIL_PORT、MAIL_USERNAME、MAIL_PASSWORD是否填写正确,本地测试可以用Mailtrap或者设置MAIL_MAILER=log将邮件输出到日志
  • 请求参数确认:在控制器里先添加dd($request->all());,确认ordermail和ordernumber参数确实被正确接收
  • 错误日志排查:如果还是失败,查看storage/logs/laravel.log里的错误信息,会提示具体的失败原因(比如配置错误、视图不存在等)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:40:29