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

Laravel Mailable邮件无法正常送达问题求助

排查Laravel Mailable用sendmail驱动收不到邮件的问题

嘿,我来帮你捋捋这个问题——既然把邮件驱动改成log时能正常写入日志,说明你的Mailable逻辑、视图和数据传递都是没问题的,问题大概率出在sendmail的配置或者服务器环境上。咱们一步步排查:

1. 先验证服务器上的sendmail是否真的能工作

先跳出Laravel,直接在服务器命令行测试sendmail本身:

echo "Test email body" | sendmail -v your-test-email@example.com
  • 仔细看命令输出,如果出现找不到sendmail、权限不足或者连接失败的提示,那就是服务器的sendmail没装好、没启动或者权限有问题。
  • 另外确认配置里的sendmail路径是否正确:用which sendmail命令可以查到实际路径,比如有些系统可能是/usr/bin/sendmail而不是/usr/sbin/sendmail,如果路径不对,Laravel根本调用不到sendmail。

2. 检查隐藏的日志信息

虽然你的代码没抛出异常,但很多时候错误会被记录在日志里:

  • 查看Laravel的应用日志:storage/logs/laravel.log,搜一下sendmail或者Mail相关的条目,可能有警告信息。
  • 查看服务器的邮件系统日志:不同系统路径不一样,比如Debian/Ubuntu是/var/log/mail.log,CentOS/RHEL是/var/log/maillog,这里会记录sendmail的投递状态——比如邮件是不是被当成垃圾邮件丢弃,或者卡在队列里了。

3. 调整sendmail的配置参数

你当前的sendmail配置是'/usr/sbin/sendmail -bs',这个参数是让sendmail运行在SMTP服务器模式,但有些环境下兼容性不好。试试改成常用的组合:

// 在config/mail.php里修改
'sendmail' => '/usr/sbin/sendmail -t -i'

-t表示从邮件头读取收件人信息,-i表示忽略单独的.行,这个配置在大多数Laravel项目里都能正常工作。

4. 测试同步发送时的详细错误

虽然你说用send()没报错,但可以暂时去掉try-catch,看看会不会有隐藏的错误(比如Throwable类型的错误,之前的catch (\Exception $e)可能没捕获到):

// 暂时注释掉try-catch,直接执行
Mail::to('xxx@xxx.com', 'Troubleshooting')->send(new ErrorReport($data));

然后看页面输出或者Laravel日志,有时候一些非Exception的错误会被之前的捕获逻辑忽略。

5. 简化邮件内容测试

视图里的var_dump(Session::all())可能会输出大量内容,导致邮件过大被服务器拒收,或者包含敏感信息触发反垃圾规则。先简化视图,只发最基础的文本:

User name: {!! $name !!} <br/>
Test email content

测试能不能收到,如果能收到,再逐步加回原来的内容,排查是不是某个部分导致的问题。另外还要检查From地址是否符合服务器的SPF/DKIM配置,有些服务器会直接丢弃发件人不符合规范的邮件,而且不会返回错误。

6. 考虑切换到SMTP驱动

如果sendmail实在搞不定,切换到SMTP驱动可能更可靠——比如用你的域名邮箱、Gmail或者Outlook的SMTP服务,配置起来简单,而且SMTP会返回明确的错误码,更容易排查问题。比如Gmail的配置大概是这样:

// config/mail.php
'driver' => 'smtp',
'host' => 'smtp.gmail.com',
'port' => 587,
'encryption' => 'tls',
'username' => 'your-gmail-account@gmail.com',
'password' => 'your-app-password',

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:07:30