Laravel 5.8 Mailgun EU 端点配置不起作用

DLO*_*DLO 4 laravel mailgun

我正在使用 Mail 和 Mailgun 从 Laravel (5.8) 发送电子邮件。

向沙箱发送电子邮件时没有问题,但在生产中我无法从我的域发送电子邮件。我基本上已经弄清楚这是由于 EU 端点造成的,但是即使我配置了端点 guzzle 仍然尝试从默认值发送。

为什么仍然使用默认值有什么原因吗?

failed_jobs 异常:

GuzzleHttp\Exception\ClientException:客户端错误:POST https://api.mailgun.net/v3/mydomain.com.au/messages.mime导致404 NOT FOUND响应:{“message”:“找不到域名:mydomain.com.au”}

该端点应该是 api。欧盟.mailgun.net/v3

服务.php

'邮件枪' => [

    'domain' => env('MAILGUN_DOMAIN'),
    'secret' => env('MAILGUN_SECRET'),
    'endpoint' => env('MAILGUN_ENDPOINT', 'api.eu.mailgun.net/v3'),
],
Run Code Online (Sandbox Code Playgroud)

.env 文件

MAIL_DRIVER=邮件枪

MAILGUN_DOMAIN=mydomain.com.au

MAILGUN_SECRET=2........................a

MAILGUN_ENDPOINT=api.eu.mailgun.net/v3

car*_*ari 5

从我的(工作).env:

MAILGUN_DOMAIN=your-in-mailgun-for-eu-configured-subdomain.yourdomain.com
MAILGUN_SECRET=your-key-0123456789abcdef0123456789abcdef0123456789abcdef
MAILGUN_ENDPOINT=api.eu.mailgun.net
Run Code Online (Sandbox Code Playgroud)

请注意缺少 /v3,您不需要它。但从你的信息来看,你有一个不同的错误:

您忘记composer install在服务器上安装并仍然使用旧包。因为:

在供应商/laravel/framework/src/Illuminate/Mail/Transport/MailgunTransport.php:51

$this->endpoint = $endpoint ?? 'api.mailgun.net';

...从供应商/laravel/framework/src/Illuminate/Mail/TransportManager.php:138 调用

        return new MailgunTransport(
            $this->guzzle($config),
            $config['secret'],
            $config['domain'],
            $config['endpoint'] ?? null
        );
Run Code Online (Sandbox Code Playgroud)

...直接引用 config/services.php -> mailgun -> 端点

因此,唯一可能导致错误的是旧的作曲家模块。