Laravel使用Mailgun API发邮件报错:无法连接远程Mailgun服务器
Laravel使用Mailgun API发送邮件时无法连接远程服务器的排查方案
核对Mailgun核心配置
检查.env文件里的MAILGUN_DOMAIN和MAILGUN_SECRET是否与Mailgun后台完全一致,注意要用API密钥而非SMTP密钥。如果是欧盟区域名,还需在config/services.php的mailgun配置中指定endpoint为api.eu.mailgun.net,默认美国区是api.mailgun.net。测试服务器网络连通性
在服务器终端执行curl -v https://api.mailgun.net/v3/你的Mailgun域名/messages,观察是否能建立正常连接。如果出现超时或拒绝连接,说明服务器防火墙/安全组限制了443端口的出站请求,需要开放该端口的对外访问权限。重置Laravel配置缓存
确保config/mail.php中default项设置为mailgun,同时确认config/services.php的Mailgun配置无误:'mailgun' => [ 'domain' => env('MAILGUN_DOMAIN'), 'secret' => env('MAILGUN_SECRET'), 'endpoint' => env('MAILGUN_ENDPOINT', 'api.mailgun.net'), 'scheme' => 'https', ],执行
php artisan config:clear清除配置缓存,避免旧配置干扰。检查Mailgun账户状态
登录Mailgun后台确认:账户无欠费、待验证域名已完成DNS解析验证,未通过验证的域名无法使用API发送邮件。验证PHP依赖环境
Laravel的Mailgun驱动依赖Guzzle HTTP客户端,确保服务器已安装ext-curl扩展,且Guzzle版本与当前Laravel版本兼容(可通过composer show guzzlehttp/guzzle查看版本信息)。
内容的提问来源于stack exchange,提问作者amr
相关产品推荐
相关产品推荐

