未使用Mailgun API在Laravel 8中发送电子邮件



我设置了mailgun帐户,并试图使用沙箱域来测试使用API而不是smtp发送电子邮件。这就是我的Laravel.env文件设置的方式

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

然后我在我的控制器中使用这个来发送电子邮件。

$emailToSendTo = Page::where('name', 'contact')->first()->email;
Mail::to($emailToSendTo)->send(new ContactSent($request));

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

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

我要回答我自己的问题,这样可以帮助别人。

我把它放在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,因为它混淆了我的想法

相关内容

  • 没有找到相关文章