Я пытаюсь настроить mailgun с помощью laravel (5.4), и с документами это звучит так просто, но заставить его работать на самом деле было кошмаром, и я даже не уверен, как отладить проблему.
Вот моя ситуация:
я имею 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
(У меня даже это установлено в моем .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
Я все еще ничего не получаю в своем журнале.
Насколько я понимаю, мне нужно только установить драйвер, домен и секрет для использования API mailguns (не через smtp), так что все, что я указал выше, это все, что я установил.
Что я могу сделать, чтобы выяснить, что терпит неудачу ??
Переменная MAILGUN_DOMAIN в вашем файле .env должна содержать только имя домена (вместо URL-адреса API):
Вместо
MAILGUN_DOMAIN=https://api.mailgun.net/v3/sandbox...a.mailgun.org
использование
MAILGUN_DOMAIN=sandboxXXXX.mailgun.org
Других решений пока нет …