V4n*_*ll4 1 php laravel laravel-5
我在使用Laravel发送邮件时使用的是Mailgun服务.但是,我今天已经设置了它,它刚刚停止工作.我输入了所有正确的信息.env,config/services.php和config/mail.php.但是我仍然得到以下错误:
ClientException in Middleware.php line 69:
Client error: 404
Run Code Online (Sandbox Code Playgroud)
看起来域名没有通过某种方式传递,即使在我的config/services.php文件中我有:
'mailgun' => [
'domain' => env('mydomain.com'),
'secret' => env('<my-mailgun-key>'),
],
Run Code Online (Sandbox Code Playgroud)
我隐藏了上述凭证以确保安全,但在我的实际应用中,它们是正确的值.
请帮忙.
我有一个非常类似的404问题,并尝试了Rogério提到的解决方案.我以为我做得对,但无论如何都试了一下.但滥用env()函数不是我的问题.
我将config/services.php设置为如下所示:
'mailgun' => [
'domain' => env('MAILGUN_DOMAIN',''),
'secret' => env('MAILGUN_SECRET',''),
],
Run Code Online (Sandbox Code Playgroud)
如果在.env文件中找不到名为MAILGUN_DOMAIN和MAILGUN_SECRET的值,则会提供空字符串.然后,在我的.env文件中,我从Mailgun域信息页面中包含了API Base URL和API Key.所以.env看起来像这样:
MAILGUN_DOMAIN=https://api.mailgun.net/v3/sandbox123abc.mailgun.org
MAILGUN_SECRET=key-123456abcdef
Run Code Online (Sandbox Code Playgroud)
这些值正如他们应该的那样传递,但仍然是404.看看如何开始在Mailgun 发送电子邮件文档,我看到他们的API URL最后包含"消息" - 我尝试手动添加到.env设置:
MAILGUN_DOMAIN=https://api.mailgun.net/v3/sandbox123abc.mailgun.org/messages
Run Code Online (Sandbox Code Playgroud)
这也没用,但是让我更仔细地看看Laravel吐出的堆栈痕迹.那时我注意到它试图连接的URL是:
https://api.mailgun.net/v3 https://api.mailgun.net/v3 /sandbox123abc.mailgun.org/messages/messages.mime
啊,哈!使用Mailgun的Base API URL不正确!通过重复" https://api.mailgun.net/v3 "部分就可以看出这一点.因此恰当命名的MAILGUN_ DOMAIN设置实际上只需要:
MAILGUN_DOMAIN=sandbox123abc.mailgun.org
Run Code Online (Sandbox Code Playgroud)
现在似乎显而易见,但我花了太多时间搞清楚.我以为我会把它放在那里以防其他人碰巧错过那个细节
| 归档时间: |
|
| 查看次数: |
1313 次 |
| 最近记录: |