2017-05-06 7 views
1

Ich versuche, Mailgun mit Laravel (5.4) einzurichten und es klingt so einfach mit den Dokumenten, aber es tatsächlich zu arbeiten war ein Alptraum und ich bin nicht einmal sicher, wie zu debuggen Das Thema.Wie laravel mailgun debuggen

Hier ist meine Situation:

I guzzle installiert haben.

Ich kann erfolgreich eine E-Mail über cURL von meinem Server senden.

In meiner config/services.php Datei ich habe:

'mailgun' => [ 
    'domain' => env('MAILGUN_DOMAIN'), 
    'secret' => env('MAILGUN_SECRET'), 
] 

, die ich mit meiner .env Datei gesetzt haben:

MAILGUN_DOMAIN=https://api.mailgun.net/v3/sandbox...a.mailgun.org 
MAILGUN_SECRET=key-926d...746 

der Treiber standardmäßig in config/mail.php mailgun (ich habe es selbst gesetzt in meinem .env Datei sowieso):

'driver' => env('MAIL_DRIVER', 'mailgun') 

Ich habe meine E-Mail-Adresse als autorisierte Empfänger in MailGun bestätigt.

Wenn ich die Env-Werte auf meinem Server protokollieren, sind sie, was ich in meiner .env Datei sehe.

Ich habe meinen Konfigurations-Cache über php artisan config:clear jedes Mal gelöscht, wenn ich eine Änderung versuche.

Wenn ich gehe, um Mail in einer try/catch zu senden, erhalte ich keine Fehler. Wenn ich Mail::failures(); überprüfe, bekomme ich nichts.

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]); 

Bei der Einstellung I APP_DEBUG=true und APP_LOG_LEVEL=debug ich noch nichts in meinem Log bekommen.

Von meinem Verständnis, ich muss nur den Treiber, Domain und Geheimnis zu Mailguns API verwenden (nicht über SMTP) so, was ich oben habe, ist alles, was ich gesetzt habe.

Was kann ich tun, um herauszufinden, was fehlschlägt?

Antwort

2

Die MAILGUN_DOMAIN Variable in Ihrer .env Datei sollte nur der Domain-Name (anstelle der API-URL) sein:

Statt

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

Verwenden

MAILGUN_DOMAIN=sandboxXXXX.mailgun.org 
+0

OMG ... .Ich sollte das bemerkt haben ... danke! – Radar2004