我有一个网站,我在一个页面中开发了一个xls报告。 创建之后,我想用phpmailer发送邮件。 如何将此文件附加到电子邮件中? 这是我的代码:
$objPHPExcel = new PHPExcel();
// Set document properties
$objPHPExcel->getProperties()->setCreator("Alessandro Minoccheri")
->setLastModifiedBy("Alessandro Minoccheri")
->setTitle("Office 2007 XLSX Test Document")
->setSubject("Office 2007 XLSX Test Document")
->setDescription("Generazione report inverter")
->setKeywords("office 2007 openxml php")
->setCategory("");
$row=1;
$objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow('0', $row, 'Inverter');
$objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow('1', $row, 'Channel');
$objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow('2', $row, 'Picco');
$objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow('3', $row, 'Picco data');
$objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow('4', $row, 'Media');
$objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow('5', $row, 'Sommatoria');
$objPHPExcel->setActiveSheetIndex(0);
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('report.xls');
$yourName = 'Client';
$yourEmail_2 = 'alessandro@xxx-it';
ini_set("include_path", "../inc/phpmailer/");
require("class.phpmailer.php");
$mail = new PHPMailer();
$mail->From = 'xxx@xxx.com';
$mail->FromName = 'Client';
$mail->AddAddress($yourEmail_2);
//$mail->AddBCC($yourEmail_2);
/*if(!empty($_FILES['attachment']['tmp_name'])){
$new_name = urlencode( rand(0,10000).rand(10000,20000).$_FILES['attachment']['name'] );
if(move_uploaded_file($_FILES['attachment']['tmp_name'],'./uploads/'.$new_name)){
$string_file = '<p>Curriculum allegato: '</p>';
}
}*/
$mail->WordWrap = 50; // set word wrap
$mail->IsHTML(true); // send as HTML
$mail->Subject = 'Riepilogo settimanale';
$mail->Body = "Riepilogo settimanale dell'impianto: ".utf8_decode($inv['name']);
$mail->AltBody = "Riepilogo settimanale dell'impianto: ".utf8_decode($inv['name']);
if ( $mail->Send()){
//ok
}
答案 0 :(得分:4)
你试过......
$mail->AddAttachment($full_path_to_file, "report.xls");
答案 1 :(得分:0)
**Code to create excel in php:**
$dtime=date('Y-m-d H-i-s');
$dtimeFile=date('Y-m-d-H-i-s');
$headerTab ="Col1 \t Col2\t Col3\n";
$rowRecords='';
$rowRecords .=preg_replace("/\r|\n|\t/"," ",$Col1)."\t".preg_replace("/\r|\n|\t/", " ",$Col2)."\t".preg_replace("/\r|\n|\t/", " ",Col3). "\t\n";
date_default_timezone_set('America/Los_Angeles');
$filename="Your File Name-".$dtimeFile.".xls";
$path='/pathOfFile/';
$csv_handler = fopen ($path.$filename,'w');
fwrite ($csv_handler,$headerTab);
fwrite ($csv_handler,$rowRecords);
fclose ($csv_handler);
**Code to send html email with attached excel in php:**
$file = $path.$filename;
$file_size = filesize($file);
$handle = fopen($file, "r");
$content = fread($handle, $file_size);
fclose($handle);
$content = chunk_split(base64_encode($content));
$uid = md5(uniqid(time()));
$headers = "From: from@gmail.com"."\r\n";
$headers.= "Bcc: bcc@gmail.com"."\r\n";
$headers.= "MIME-Version: 1.0\r\n";
$headers.= "Content-Type: multipart/mixed; boundary=\"".$uid."\"\r\n\r\n";
$headers .= "This is a multi-part message in MIME format.\r\n";
$headers .= "--".$uid."\r\n";
$headers .= "Content-type:text/html; charset=iso-8859-1\r\n";
$headers .= "Content-Transfer-Encoding: 7bit\r\n\r\n";
$headers .= $msg."\r\n\r\n";
$headers .= "--".$uid."\r\n";
$headers .= "Content-Type: application/octet-stream; name=\"".$filename."\"\r\n";
$headers .= "Content-Transfer-Encoding: base64\r\n";
$headers .= "Content-Disposition: attachment; filename=\"".$filename."\"\r\n\r\n";
$headers .= $content."\r\n\r\n";
$headers .= "--".$uid."--";
$date=date("Y-m-d");
if(mail($to,"Mail heading--".$date,$msg,$headers)){
echo "Mailed successfully";
}
else
{
echo "Mailed couldn't be sent";
}