php - 如何调试laravel mailgun

标签 php laravel email mailgun

我正在尝试使用 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=trueAPP_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/

相关文章:

c# - 通过 C# 和 IIS smtp 发送电子邮件时发送多个 header

c++ - 用于读取 EML 文件/Outlook MSG 文件的最佳 C++ 邮件库是什么?

javascript:是否可以定位另一个文件的 div ?

php - Android Billing-in App 版本 3 在服务器中验证

php - 插入 255 行后 MySQL 停止

php - 在 laravel 中访问多级关系

ios - 响应式表格在除默认 iOS 7 邮件应用程序之外的所有内容中都能完美呈现

php - symfony2 中同一实体的多行表单

php - laravel 会自动添加分组依据吗? Laravel toSql 与正在运行的查询的奇怪行为。

php - Laravel - 自动加载 View