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

时间:2019-07-10 10:11:36

标签: laravel mailgun

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

将电子邮件发送到沙箱时没有问题,但是在生产中,我无法从域中发送电子邮件。我基本上已经解决了这归因于EU端点,但是即使配置了端点,仍在尝试从默认值发送。

为什么仍然使用默认值?

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

services.php

  

'mailgun'=> [

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

.env文件

  

MAIL_DRIVER = mailgun

     

MAILGUN_DOMAIN = mydomain.com.au

     

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

     

MAILGUN_ENDPOINT = api.eu.mailgun.net / v3

3 个答案:

答案 0 :(得分:1)

从我(正在工作的).env中获取:

MAILGUN_DOMAIN=your-in-mailgun-for-eu-configured-subdomain.yourdomain.com
MAILGUN_SECRET=your-key-0123456789abcdef0123456789abcdef0123456789abcdef
MAILGUN_ENDPOINT=api.eu.mailgun.net

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

您忘记了服务器上的composer install,但仍使用旧软件包。 因为:

在vendor / 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
        );

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

唯一可能导致您出错的是旧的作曲家模块。

答案 1 :(得分:0)

我看到两件事:

  1. 从哪里获得答案都没有关系,因为它们之间可能存在重定向。在这一点上,我会忽略这一点。

  2. 您的MAILGUN_DOMAIN看起来不对。我有一个看起来像这样的旧书:“ sandboxaff30js632kjh4beb94e3efce3f8d4dc0 **。mailgun.org **”

根据我的经验,我记得欧盟地区存在一些问题。

您的看似错了,但可能是您有那个。邓诺。

答案 2 :(得分:0)

没有/ v3的Myend点,看起来像这样MAILGUN_ENDPOINT =