Я только что обнаружил, что мой сценарий Laravel 4 не работает, если я передаю несуществующий адрес электронной почты в Mail: Queue (). Адрес электронной почты имеет правильный формат, то есть знак «@» после имени, домен после «@». Примером может быть «johndoesnotexist@notexistemail.com». Формат действителен, хотя «notexistemail.com» вообще не существует.
Вот фрагмент кода:
$email_data = array('color' => 'Red');
$email_company = 'johndoesnotexist@notexistemail.com';
$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. Как мне это кодировать?
Может показаться, что возникает исключение, и в этом случае вы можете попытаться поймать это, а затем записать адрес электронной почты проблемы. Что-то вроде этого:-
try {
$email_data = array('color' => 'Red');
$email_company = 'johndoesnotexist@notexistemail.com';
$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);
}
Других решений пока нет …