我刚刚发现,如果我在Mail:Queue()上传递一个不存在的电子邮件地址,我的Laravel 4脚本就不起作用了。电子邮件地址具有有效格式,即名称后面的“@”符号,“@”后面的域。样本将是“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中记录错误。我该如何编码?
答案 0 :(得分:0)
似乎会抛出异常,在这种情况下,您可以尝试捕获此异常,然后记录问题电子邮件地址。这样的事情: -
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);
}