【发布时间】:2019-07-10 10:11:36
【问题描述】:
我正在使用 Mail 和 Mailgun 从 Laravel (5.8) 发送电子邮件。
向沙箱发送电子邮件时没有问题,但是在生产中我无法从我的域中发送电子邮件。我基本上已经确定这是由于欧盟端点造成的,但是即使我配置了端点 guzzle 仍然试图从默认值发送。
为什么仍然使用默认值?
failed_jobs 异常:
GuzzleHttp\Exception\ClientException:客户端错误:
POST https://api.mailgun.net/v3/mydomain.com.au/messages.mime导致404 NOT FOUND响应:{“消息”:“未找到域: mydomain.com.au" }
这个端点应该是 api.eu.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
【问题讨论】:
-
Laravel 5.6 用户:Mailgun 端点配置是在 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/Illuminate/Mail/Transport/MailgunTransport.php。