如何调试laravel mailgun

Rad*_*004 5 php email laravel mailgun

我正在尝试使用 laravel (5.4) 设置 mailgun,使用文档听起来很容易,但是让它真正工作是一场噩梦,我什至不知道如何调试这个问题。

这是我的情况:

我已经guzzle安装了。

我可以通过cURL我的服务器成功发送电子邮件。

在我的config/services.php文件中,我有:

'mailgun' => [
    'domain' => env('MAILGUN_DOMAIN'),
    'secret' => env('MAILGUN_SECRET'),
]
Run Code Online (Sandbox Code Playgroud)

我在我的.env文件中设置了:

MAILGUN_DOMAIN=https://api.mailgun.net/v3/sandbox...a.mailgun.org
MAILGUN_SECRET=key-926d...746
Run Code Online (Sandbox Code Playgroud)

驱动程序默认为 mailgun config/mail.php(我什至在我的.env文件中设置了它):

'driver' => env('MAIL_DRIVER', 'mailgun')
Run Code Online (Sandbox Code Playgroud)

我已将我的电子邮件验证为 MailGun 中的授权收件人。

当我在我的服务器上记录 env 值时,它们就是我在我的.env文件中看到的。

php artisan config:clear每次尝试更改时,我都会清除我的配置缓存。

当我去发送邮件时,try/catch我没有收到任何错误。当我检查时,Mail::failures();我什么也没得到。

try {
     $mailSent = Mail::raw('test', function($message) {
         $message->to('<my authorized-email>', 'name');
         $message->subject('testing');
     });
} catch (\Exception $e) {
    dd($e->getMessage());
}

$fail = Mail::failures();

if(!empty($fail)) throw new \Exception('Could not send message to '.$fail[0]);
Run Code Online (Sandbox Code Playgroud)

当我设置APP_DEBUG=trueAPP_LOG_LEVEL=debug我还是什么也没得到我的日志。

根据我的理解,我只需要设置驱动程序、域和密码即可使用 mailguns API(而不是通过 smtp),所以我上面的内容就是我设置的全部内容。

我能做些什么来弄清楚什么是失败的?

Agu*_*ndo 5

.env 文件中的 MAILGUN_DOMAIN 变量应该只是域名(而不是 API url):

代替

MAILGUN_DOMAIN=https://api.mailgun.net/v3/sandbox...a.mailgun.org
Run Code Online (Sandbox Code Playgroud)

MAILGUN_DOMAIN=sandboxXXXX.mailgun.org
Run Code Online (Sandbox Code Playgroud)