Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel 5.8 Mailgun EU端点配置不工作_Laravel_Mailgun - Fatal编程技术网

Laravel 5.8 Mailgun EU端点配置不工作

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

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

在向沙箱发送电子邮件时没有问题,但是在生产中,我无法从我的域发送电子邮件。我基本上已经计算出这是由于欧盟的端点,但是即使我配置了端点guzzle,它仍然试图从默认值发送

为什么仍然使用默认值

失败\u作业异常:

GuzzleHttp\Exception\ClientException:客户端错误:
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

我看到两件事:

  • 你从哪里得到答案并不重要,因为在这两者之间可能会有重定向。我会忽略这一点

  • 您的MAILGUN\u域看起来有误。我有一个旧域,看起来像这样:“sandboxaff30js632kjh4beb94e3efce3f8d4dc0**.MAILGUN.org**”

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


    你的看起来是错的,但可能是你有这个。不知道。

    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
            );