我正在尝试使用 laravel (5.4) 设置 mailgun,使用文档听起来很容易,但让它真正工作是一场噩梦,我什至不知道如何调试这个问题。
这是我的情况:
我有 guzzle
安装。
我可以通过 cURL
成功发送电子邮件从我的服务器。
在我的 config/services.php
我有文件:
'mailgun' => [
'domain' => env('MAILGUN_DOMAIN'),
'secret' => env('MAILGUN_SECRET'),
]
我在
.env
中设置的文件:MAILGUN_DOMAIN=https://api.mailgun.net/v3/sandbox...a.mailgun.org
MAILGUN_SECRET=key-926d...746
驱动程序在
config/mail.php
中默认为 mailgun (我什至在我的 .env
文件中设置了它):'driver' => env('MAIL_DRIVER', 'mailgun')
我已将我的电子邮件验证为 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]);
当我设置
APP_DEBUG=true
和 APP_LOG_LEVEL=debug
我的日志中仍然没有任何信息。根据我的理解,我只需要设置驱动程序、域和密码即可使用 mailguns API(而不是通过 smtp),所以我上面的内容就是我设置的全部内容。
我能做些什么来弄清楚什么是失败的?
最佳答案
.env 文件中的 MAILGUN_DOMAIN 变量应该只是域名(而不是 API url):
代替
MAILGUN_DOMAIN=https://api.mailgun.net/v3/sandbox...a.mailgun.org
用
MAILGUN_DOMAIN=sandboxXXXX.mailgun.org
关于php - 如何调试laravel mailgun,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43816611/