您好我尝试从命令发送带有excel文件的电子邮件,但它似乎不起作用
当我尝试运行artisan命令时,我得到此异常:
现在有人如何解决问题?非常感谢提前调用未定义的方法Illuminate \ Mail \ PendingMail :: subject()
这是我的命令:
public function handle()
{
$user = Auth::user();
$licencies = Licencies::where('lb_assurance' , '=' , 'Lafont')
->where('created_at' , Carbon::today())->get();
$excel_file = Excel::create('DailyRecapLicencesLafont',
function($excel) use ($licencies) {
$excel->sheet('Excel', function($sheet) use ($licencies) {
$sheet->fromArray($licencies);
});
});
Mail::to($user)
->subject('Licences Lafont Daily')
->from('test@test.fr')
->attach($excel_file , 'LaFontDaily.xls')
->send();
$this->info('Lafont task Done');
}
答案 0 :(得分:0)
尝试使用这样的邮件:
Mail::raw('Text to e-mail', function ($m) use ($user, $excel_file) {
$m->to($user->email);
$m->subject('Licences Lafont Daily');
$m->from('test@test.fr');
$m->attachData($excel_file->string() , 'LaFontDaily.xls');
});
资料来源:laravel 5.1 docs,在很大程度上仍然适用于5.4
不确定$ excel_file是否是内存中的数据,所以如果您之前保存文件并调用它会更好:
$m->attach($path_to_file , 'LaFontDaily.xls');
旁注:Auth::user()
不应在命令中返回任何内容,因此如果在to()函数中使用预定义的电子邮件地址则更好。