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

Laravel 8通过Mailgun API发信返回401 Unauthorized错误如何解决?

排查解决步骤

  • 首先补装Laravel 8+ Mailgun驱动必需的依赖包,Laravel 7版本后重构了邮件驱动体系,不再默认内置Mailgun相关依赖,执行以下命令安装即可:
composer require symfony/mailgun-mailer symfony/http-client

安装完成后重新生成配置缓存php artisan config:cache再测试发信。

  • 检查.env中MAILGUN_SECRET值的格式,如果密钥包含特殊字符、#符号,需要将完整值用双引号包裹,避免.env解析时被截断:
MAILGUN_SECRET="key-##########################"
  • 你之前的SMTP测试逻辑存在错误:使用smtp.mailtrap.io作为发信主机时,邮件只会投递到Mailtrap的测试收件箱,根本不会请求Mailgun的服务,自然查不到对应日志。要验证SMTP发信逻辑请使用Mailgun官方提供的SMTP配置:
MAIL_MAILER=smtp
MAIL_HOST=smtp.mailgun.org
MAIL_PORT=587
MAIL_USERNAME=你的Mailgun域名对应SMTP用户名
MAIL_PASSWORD=你的Mailgun域名对应SMTP密码
MAIL_ENCRYPTION=tls
  • 如果站点使用队列发送邮件,修改配置后必须重启队列工作进程,队列进程会缓存启动时的全部配置,仅刷新配置缓存不会生效:
php artisan queue:restart
  • 确认你使用的Mailgun密钥权限:若你使用的是域名级专属密钥,需要确认该密钥绑定的域名和你配置的MAILGUN_DOMAIN完全一致,跨域名调用会直接返回401错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 10:00:06