使用phpmailer结合PHPexcell完成定时发送邮件和excell的功能;
ini_set("magic_quotes_runtime",0);
require 'class.phpmailer.php';
require 'dbo.php';
function getExcel($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 ($headArr as $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 ($data as $key => $rows) { //行写入
$span = ord("A");
foreach ($rows as $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;
}
function sendemail($content){
$mail = new PHPMailer(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 = new MysqlConnector();
$d=date('w');
if($d > 0 && $d < 6){
$time=date('Y-m-d H:i:s');
$sql="select shopcode,shopname ,cnt ,uptime,cause,location,relation,temp from table";
$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=''.$arr[$i]['shopname'].'
'.'
'.
'地址:'.$arr[$i]['location'].'
'.
'联系电话:'.$arr[$i]['relation'].'
'.
'离线ap数量: '.$arr[$i]['cnt'].'
'.'离线时间:'
.$arr[$i]['uptime'].'
'.'店铺编号:'.$arr[$i]['shopcode'].'
'
.'上次离线原因:'.$arr[$i]['cause'].'
'.'具体描述:'
.$arr[$i]['temp'].'
';
$str.=$content;
}
foreach ($arr as $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;
}
}
文章题目:phpmailer发送excell
分享网址:
http://cdxtjz.cn/article/pddgds.html