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

Laravel 7 邮件发送异常:SMTP连接报错、sendmail无报错但收不到信

Laravel 7 邮件发送异常排查方案

一、SMTP 模式连接 smtp.gmail.com 失败排查

  • 先验证服务器网络连通性:登录部署代码的服务器,执行telnet smtp.gmail.com 587测试端口连通性。如果连接失败,优先排查三类问题:服务器本地防火墙是否禁止587端口出站、服务器运营商是否封禁了对外587端口的请求、服务器所处网络环境是否无法正常访问Gmail服务。
  • 核对Gmail账号配置:当前Gmail已经默认禁用普通密码登录SMTP服务,需先为账号开启两步验证,再生成应用专用密码填入MAIL_PASSWORD配置项,不要直接填账号登录密码。
  • 清理Laravel配置缓存:每次修改.env文件后,必须执行php artisan config:clear清除旧的配置缓存,避免修改不生效。

二、sendmail 模式无报错但收不到邮件排查

sendmail驱动依赖服务器本地的sendmail服务发信,你配置文件中的SMTP地址、端口、账号密码对该驱动完全无效,优先排查以下问题:

  • 检查本地sendmail服务状态:执行systemctl status sendmail确认服务正常运行,未启动的话先启动对应服务。
  • 查看邮件服务日志:去/var/log/maillog或/var/log/mail.log路径查看发信日志,确认邮件是在本地发送环节被拦截,还是发出去后被收件方的反垃圾策略拒收。
  • 核对发件人配置:你代码中硬编码了from地址,需确认该地址和sendmail服务绑定的发信域名一致,否则极大概率会被收件方当成垃圾邮件拦截,不会进入收件箱。
  • 查看Laravel运行日志:打开storage/logs/laravel.log检查是否有隐藏的发信报错,部分sendmail静默失败的信息会记录在此处。

通用验证步骤

你可以先把MAIL_MAILER改成log,执行发信逻辑后查看Laravel日志里是否有正常生成邮件内容,先确认业务代码逻辑没有问题,再排查服务端配置问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 21:36:04