有时需要定期向操作发送表数据。方法是定时运行程序,将数据生成excel,然后发邮件到运营邮箱。这里使用laravel来处理。安装maatwebsite/excelcomposerreuqiremaatwebsite/excel下载excel$titles=['用户ID','用户昵称','公司名称','销量','功能版本','次数','最高','消费','剩余','时间'];//使用Excel::create$data_arr=[$titles,['user_id'=>100,'nick_name'=>'xxx','company'=>'Baidu','seller_name'=>'老王','user_type'=>1,'times'=>666,'top'=>100,'flows'=>88,'rest'=>123,'time'=>date('YmdHis')]];//从数据库读取的结果//http://www.maatwebsite.nl/laravel-excel/docs/export\Excel::create('excel',function($excel)使用($data_arr){$excel->sheet('Sheetname',function($sheet)使用($data_arr){$sheet->fromArray($data_arr,null,'A1',false,false);});})->store('xlsx',storage_path('excel/exports'));发送邮件//https://docs.golaravel.com/docs/5.0/mail/邮件配置参考#cat.envMAIL_DRIVER=smtpMAIL_HOST=smtp.exmail.qq.comMAIL_PORT=25MAIL_USERNAME=xxx@xxx.comMAIL_PASSWORD=xxx#catconfig/mail.php//templatefile#catresources/views/emails/attachment.balde.php附件内容:{{$content}}
发送时间:{{date('Y-m-dH:i:s')}}//重试3次$tryTimes=3;do{$email='xxx@xx.com';$attachments=['file'=>storage_path('excel/exports').'/excel.xlsx'];//上面下载的Excel附件$subject='mail';$cc='xxx@xx.com';//抄送邮件$sendResult=\Mail::send('emails.attachment',['content'=>'发送内容'],function($message)use($电子邮件,$attachments,$subject,$cc){$message->to($email)->subject($subject);foreach($attachmentsas$alias=>$attachment){$ext=pathinfo($attachment)['extension'];$message->attach($attachment,['as'=>"=?UTF-8?B?".base64_encode($alias)."?=.".$ext]);//}if(!empty($cc)){$message->cc($cc);}});$尝试次数--;}while($sendResult==0&&$tryTimes);dd($sendResult);//发送为工作2
