Laravel 5.8 Mailgun EU端点配置不工作
我用Mail和Mailgun从Laravel(5.8)发送电子邮件 在向沙箱发送电子邮件时没有问题,但是在生产中,我无法从我的域发送电子邮件。我基本上已经计算出这是由于欧盟的端点,但是即使我配置了端点guzzle,它仍然试图从默认值发送 为什么仍然使用默认值 失败\u作业异常: GuzzleHttp\Exception\ClientException:客户端错误:Laravel 5.8 Mailgun EU端点配置不工作,laravel,mailgun,Laravel,Mailgun,我用Mail和Mailgun从Laravel(5.8)发送电子邮件 在向沙箱发送电子邮件时没有问题,但是在生产中,我无法从我的域发送电子邮件。我基本上已经计算出这是由于欧盟的端点,但是即使我配置了端点guzzle,它仍然试图从默认值发送 为什么仍然使用默认值 失败\u作业异常: GuzzleHttp\Exception\ClientException:客户端错误:POST https://api.mailgun.net/v3/mydomain.com.au/messages.mime导致 404
POST
https://api.mailgun.net/v3/mydomain.com.au/messages.mime
导致
404未找到
响应:{“消息”:“未找到域:
mydomain.com.au“}
此端点应为api。eu.mailgun.net/v3
services.php
“邮枪”=>[
'domain' => env('MAILGUN_DOMAIN'),
'secret' => env('MAILGUN_SECRET'),
'endpoint' => env('MAILGUN_ENDPOINT', 'api.eu.mailgun.net/v3'),
],
.env文件
邮件驱动程序=邮枪
MAILGUN_DOMAIN=mydomain.com.au
MAILGUN_SECRET=2
MAILGUN_ENDPOINT=api.eu.MAILGUN.net/v3
我看到两件事:
你的看起来是错的,但可能是你有这个。不知道。Myend point with out/v3,看起来像我(工作)中的这个MAILGUN\u ENDPOINT=。环境: 请注意缺少的/v3,您不需要它。但是从您的信息来看,您有一个不同的错误: 您忘记在服务器上安装
composer
,仍然使用旧软件包。
因为:
在vendor/laravel/framework/src/illumb/Mail/Transport/MailgunTransport.php:51中
$this->endpoint=$endpoint???'api.mailgun.net';
…从vendor/laravel/framework/src/illumb/Mail/TransportManager.php调用:138
return new MailgunTransport(
$this->guzzle($config),
$config['secret'],
$config['domain'],
$config['endpoint'] ?? null
);
…直接引用config/services.php->mailgun->endpoint
因此,唯一可能导致您出错的是旧的composer模块。如果我使用我的沙盒环境,它在美国域中没有问题。老实说,我已经尝试了所有方法,所以我最终放弃了,将我的mailgun域从欧盟改为美国,它工作正常。我的域实际上是一个托管子域-mail.mydomain.comLaravel 5.6用户:Mailgun endpoint config在5.7中引入,并向后移植到5.5,但不是5.6 AFAICT。我只使用eu域,虽然我不建议这样做,但目前我只是将代码作为构建步骤进行修补,如下所示:
sed-I's#https://api.mailgun.net/v3/#https://api.eu.mailgun.net/v3/#'/var/www/html/vendor/laravel/framework/src/illusted/Mail/Transport/MailgunTransport.php
。
return new MailgunTransport(
$this->guzzle($config),
$config['secret'],
$config['domain'],
$config['endpoint'] ?? null
);