Email Laravel Mail::稍后在错误处理中

Email Laravel Mail::稍后在错误处理中,email,laravel,Email,Laravel,我正在处理Laravel错误,希望在发生异常时从App::error发送电子邮件 下面的代码正在工作,我收到电子邮件 $data = array('exception' => $exception,'ip'=>$ip,'host'=>$host,'url'=>$url); $details=['server'=>$server]; Mail::later(10,'emails.exception', $data, function($message) use($de

我正在处理Laravel错误,希望在发生异常时从App::error发送电子邮件

下面的代码正在工作,我收到电子邮件

$data = array('exception' => $exception,'ip'=>$ip,'host'=>$host,'url'=>$url);
$details=['server'=>$server];
Mail::later(10,'emails.exception', $data, function($message) use($details)
{
    $message->from('xxxx@xxxx.com');
    $message->to('xxxx@xxxx.com')->subject('Error on '.$details['server']);

});
然而,当我从Mail::send更改为Mail::later20时,当发生异常时,我会得到以下错误

异常处理程序出错:数组到字符串转换视图:/app/views/emails/exception.blade.php位于/app/storage/views/1c8e0883061171a30b7f85d86c83370d:8

我的电子邮件模板如下

Client: {{$ip}}
Host: {{$host}}
URL: {{$url}}
Exception:
{{$exception}} - This is where the error is
当使用Mail::later时,Laravel依赖于序列化PHP对象。我怀疑您的异常正在序列化到数组中

由于将$exception专门用作字符串而不是对象,因此可以通过在将异常传递给Mail::之后使用类型转换来解决此问题:

$data = array('exception' => (string) $exception, 'ip'=> $ip, 'host'=> $host, 'url'=> $url);

$server变量是什么?这解决了我的问题,但我注意到,即使使用Mail::later,我也会得到7秒的响应时间,而如果我禁用邮件部分,我会在不到一秒的时间内得到它!没关系,我没有实现任何队列。我认为,一旦我实现beanstalkd,它将处理稍后的发送