在尝试对包含附件的邮件进行排队时遇到问题。
如果没有排队,我可以毫无问题地发送电子邮件。附件是正确的,可以打开。当我尝试排队该电子邮件时出现问题。由maatwebsite / excel lib生成的Excel
错误:
InvalidPayloadException in Queue.php line 89:
5
我发现这部分代码抛出了这个错误:
...\vendor\laravel\framework\src\Illuminate\Queue\Queue.php
protected function createPayload($job, $data = '', $queue = null)
{
$payload = json_encode($this->createPayloadArray($job, $data, $queue));
if (JSON_ERROR_NONE !== json_last_error()) {
throw new InvalidPayloadException;
}
return $payload;
}
我的代码如下:
excel = Excel::create('Report', function($excel) {
$excel->sheet('Sheetname', function($sheet) {
$sheet->fromArray([['aaa']]);
});
})->string('xlsx');
Mail::to('mail@mail.com')
->queue(new Report($excel));
我试过utf8_encode($ excel),但后来我无法打开邮件附件,我认为生成excel的任何操作都会破坏文件...
当我尝试从磁盘附加excel文件时,也会出现此问题。
任何帮助?