【问题标题】:Email Not Being Sent in Laravel 8 using Mailgun API使用 Mailgun API 在 Laravel 8 中未发送电子邮件
【发布时间】:2021-03-09 21:28:48
【问题描述】:

我设置了我的 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 类已在刀片视图中正常设置。

【问题讨论】:

    标签: php mailgun laravel-8


    【解决方案1】:

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

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

    dd($this->endpoint);
    

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

    应该是:

    MAILGUN_ENDPOINT=api.mailgun.net
    

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

    【讨论】:

    猜你喜欢
    • 2021-05-12
    • 2017-10-12
    • 1970-01-01
    • 2021-03-30
    • 2014-04-14
    • 2015-03-25
    • 1970-01-01
    • 1970-01-01
    • 2019-10-18
    相关资源
    最近更新 更多