2017-05-06 59 views
1

我正在嘗試使用laravel(5.4)設置mailgun,並且這聽起來對於文檔來說非常簡單,但是將其實際上運行起來是一場噩夢,我甚至不知道如何調試問題。如何調試laravel 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),所以我已經設置了所有的東西。

我能做些什麼來弄清楚什麼是失敗?

回答

2

在.ENV文件中的MAILGUN_DOMAIN變量應該是唯一的域名(而不是API網址):

代替

MAILGUN_DOMAIN=https://api.mailgun.net/v3/sandbox...a.mailgun.org 

使用

MAILGUN_DOMAIN=sandboxXXXX.mailgun.org 
+0

OMG ......我應該注意到......謝謝! – Radar2004