[英]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.