2017-02-21 3 views
0

Я только что обнаружил, что мой сценарий Laravel 4 не работает, если я передаю не существующий адрес электронной почты в Mail: Queue(). Адрес электронной почты имеет допустимый формат, т. Е. Знак «@» после имени, домена после «@». Образец будет «[email protected]». Формат действителен, даже если «notexistemail.com» вообще не существует.Как обработать невозможно отправить электронную почту на Laravel 4 на несуществующий адрес электронной почты

Вот фрагмент кода:

$email_data = array('color' => 'Red'); 
$email_company = '[email protected]'; 
$email_name = 'john doe'; 
Mail::queue('emails.form1', $email_data, function($message) use($email_company, $email_name) { 
    $message->to($email_company, $email_name)->subject('Hello John'); 
}); 

Но если я прохожу существующий адрес электронной почты, скрипт работает. Мне нужно обработать такую ​​ошибку, то есть зарегистрировать ошибку в laravel.log. Как это сделать?

+0

Непонятно, что вы просите. Когда вы говорите, что ваш скрипт не работает, вы имеете в виду, что он бросает исключение? – drmonkeyninja

+0

Привет, я использую AJAX для вызова сценария. Я замечаю, что звонок не отвечает. На консоли Chrome я вижу внутреннюю ошибку 500. Но когда я заменяю существующим письмом, скрипт работает. Спасибо –

+0

Я в настоящее время проверяю это, https://laravel.com/docs/4.2/queues#failed-jobs –

ответ

0

Казалось бы, возникает исключение, и в этом случае вы можете попробовать и поймать это, а затем зарегистрировать адрес электронной почты проблемы. Что-то вроде этого: -

try { 
    $email_data = array('color' => 'Red'); 
    $email_company = '[email protected]'; 
    $email_name = 'john doe'; 
    Mail::queue('emails.form1', $email_data, function($message) use($email_company, $email_name) { 
     $message->to($email_company, $email_name)->subject('Hello John'); 
    }); 
} catch (Exception $e) { 
    Log::error('Failed to send email to ' . $email_company); 
} 
+0

Я попробую. благодаря –

Смежные вопросы