使用phpmailer结合PHPexcell完成定时发送邮件和excell的功能;ini_set("magic_quotes_runtime",0);require'class.phpmailer.php';require'dbo.php';functiongetExcel($fileName,$headArr,$data){//导入PHPExcel类库,因为PHPExcel没有用命名空间,只能导入include'PHPExcel.php';include'PHPExcel/Reader/Excel5.php';include'PHPExcel/Reader/Excel2007.php';$date=date("Y_m_d",time());//$fileName.=$date;//创建PHPExcel对象,注意,不能少了\$objPHPExcel=new\PHPExcel();$objProps=$objPHPExcel->getProperties();//设置表头$key=ord("A");//print_r($data);exit;foreach($headArras$v){$colum=chr($key);$objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum.'1',$v);$objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum.'1',$v);$key+=1;}$column=2;$objActSheet=$objPHPExcel->getActiveSheet();//print_r($data);exit;foreach($dataas$key=>$rows){//行写入$span=ord("A");foreach($rowsas$keyName=>$value){//列写入$j=chr($span);$objActSheet->setCellValue($j.$column,$value);$span++;}$column++;}$fileName=iconv("utf-8","gb2312",$fileName);//重命名表//$objPHPExcel->getActiveSheet()->setTitle('test');//设置活动单指数到第一个表,所以Excel打开这是第一个表$objPHPExcel->setActiveSheetIndex(0);ob_end_clean();//清除缓冲区,避免乱码//header('Content-Type:application/vnd.ms-excel');//header("Content-Disposition:attachment;filename='$fileName'");//header('Content-Disposition:attachment;filename="'.$fileName.'.xls"');//header('Cache-Control:max-age=0');$objWriter=\PHPExcel_IOFactory::createWriter($objPHPExcel,'Excel5');$objWriter->save("/var/www/html/sendemail/upload/$fileName.xls");//文件通过浏览器下载//exit;}functionsendemail($content){$mail=newPHPMailer(true);$mail->IsSMTP();$mail->CharSet='UTF-8';//设置邮件的字符编码$mail->SMTPAuth=true;//开启认证$mail->Port=25;$mail->Host="smtp.ym.163.com";$mail->Username="xiegs@etonesystem.com";//$mail->Password="password";$mail->AddReplyTo("xiegs@etonesystem.com","xiaoxie");//回复地址$mail->From="xiegs@etonesystem.com";$mail->FromName="小谢";$to="736214763@qq.com";$mail->AddAddress($to);$mail->addCC('111@189.cn');//抄送人$mail->addCC('222@163.com');$mail->addCC('xiaoxie@qq.com');$mail->Subject="有设备离线";$mail->Body="$content";$mail->AltBody="设备离线请尽快查看!";//当邮件不支持html时备用显示,可以省略$mail->WordWrap=80;//设置每行字符串的长度$mail->AddAttachment("/var/www/html/sendemail/111.xls");//可以添加附件$mail->IsHTML(true);$mail->Send();}//创建mysql实例查询数据$dbo=newMysqlConnector();$d=date('w');if($d>0&&$d<6){$time=date('Y-m-dH:i:s');$sql="selectshopcode,shopname,cnt,uptime,cause,location,relation,tempfromtable";$result=$dbo->returnResult($sql);$str="你好:";if($result){while($row=mysql_fetch_array($result,MYSQL_ASSOC)){$arr[]=$row;}}//if($arr){//$count=count($arr);for($i=0;$i<$count;$i++){$content='<h4>'.$arr[$i]['shopname'].'</h4>'.'<br/>'.'地址:'.$arr[$i]['location'].'<br/>'.'联系电话:'.$arr[$i]['relation'].'<br/>'.'离线ap数量:'.$arr[$i]['cnt'].'<br/>'.'离线时间:'.$arr[$i]['uptime'].'<br/>'.'店铺编号:'.$arr[$i]['shopcode'].'<br/>'.'上次离线原因:'.$arr[$i]['cause'].'<br/>'.'具体描述:'.$arr[$i]['temp'].'<br/>';$str.=$content;}foreach($arras$field=>$v){//第一行的头if($field=='shopcode'){$headArr[]='店铺编号';}if($field=='shopname'){$headArr[]='店铺名称';}if($field=='cnt'){$headArr[]='离线ap数量';}if($field=='uptime'){$headArr[]='离线时间';}if($field=='cause'){$headArr[]='上次离线原因';}if($field=='location'){$headArr[]='地址';}if($field=='relation'){$headArr[]='联系电话';}if($field=='temp'){$headArr[]='具体描述';}}$filename="111";getExcel($filename,$headArr,$arr);sendemail($str);//echo$str;}else{exit;}}