繁体   English   中英

Email 未在 Laravel 8 中使用 Mailgun API 发送

[英]Email Not Being Sent in Laravel 8 using Mailgun API

我设置了我的 mailgun 帐户并尝试使用沙盒域来测试使用 API 而不是 smtp 发送 email。 这就是我的 Laravel .env文件的设置方式

MAIL_MAILER=mailgun
MAILGUN_DOMAIN=sandboxxxxxxx.mailgun.org
MAILGUN_SECRET=xxxxxxxxx
MAILGUN_ENDPOINT=api.mailgun.net/v3/<mailgun-domain>

然后我在我的 controller 中使用它来发送 email。

    $emailToSendTo = Page::where('name', 'contact')->first()->email;

    Mail::to($emailToSendTo)->send(new ContactSent($request));

当我查看 mailgun 仪表板时,没有发送我的 email。 我也没有收到任何错误消息。 我也知道 mailgun 将您可以在沙盒域中发送到的电子邮件限制为您在 mailgun 中设置的内容。 $emailToSendTo是经过验证的 email。

ContactSent class 已通过刀片视图进行了良好设置。

我将回答我自己的问题,以便对某人有所帮助。

我把它放在vendor/laravel/src/Illuminate/Mail/Transport/MailgunTransport.php和方法send()里面:

dd($this->endpoint);

然后我尝试调用发送邮件的方法。 我注意到MAILGUN_ENDPOINT设置不正确,因此dd($this->endpoint)向我显示了错误的端点。

它应该是:

MAILGUN_ENDPOINT=api.mailgun.net

这解决了我的问题。 我希望这将有助于调试。 此外,我真的认为环境变量应该命名为MAILGUN_BASE_URL ,因为它把我弄糊涂了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM