Mailgun Webhook对接Laravel站点返回403 Forbidden错误排查求助
Mailgun Webhook 403 Forbidden 排查方向
检查服务器防火墙/安全规则
- 服务器(Nginx/Apache)或云服务商的WAF可能拦截了Mailgun的请求,需将Mailgun官方IP段加入白名单。
- 查看服务器错误日志(如Nginx的
/var/log/nginx/error.log、Apache的/var/log/apache2/error.log),里面会记录具体拦截原因,比如ModSecurity规则触发、IP被拉黑等。
验证Laravel CSRF排除配置
- 确认
app/Http/Middleware/VerifyCsrfToken.php中的$except数组是否正确包含Webhook的完整路由(注意路径大小写、前缀是否匹配,比如带api前缀的要写全)。 - 可临时注释
VerifyCsrfToken中间件,测试请求是否正常,若恢复则说明CSRF排除未生效。
- 确认
排查请求是否到达Laravel
- 在Webhook控制器方法中添加日志记录:
Log::info('Mailgun Webhook Request', [ 'headers' => request()->headers->all(), 'body' => request()->all() ]); - 查看
storage/logs/laravel.log,如果没有这条日志,说明请求被服务器层面拦截,未进入Laravel处理流程。
- 在Webhook控制器方法中添加日志记录:
确认路由配置正确性
- 执行
php artisan route:list查看路由列表,确保Webhook路由的HTTP方法为POST,路径与Mailgun配置的完全一致。 - 检查路由是否有参数,确认Mailgun请求路径是否匹配,无额外参数或路径错误。
- 执行
排查ModSecurity或WAF规则
- 若服务器开启ModSecurity,查看其审计日志(如Apache的
/var/log/apache2/modsec_audit.log),找到触发的规则ID并排除;也可临时关闭ModSecurity测试。 - 检查云服务商W控制台的拦截记录,将Mailgun IP或Webhook路径加入白名单。
- 若服务器开启ModSecurity,查看其审计日志(如Apache的
内容的提问来源于stack exchange,提问作者TIW DEV
相关产品推荐
相关产品推荐

