通过电子邮件发送后无法收到excel附件

时间:2017-03-21 08:37:22

标签: php email

我正在尝试生成excel文件并通过电子邮件将其作为附件发送。这里是生成excel文件的代码:

/** Include PHPExcel */
require_once 'PHPExcel/Classes/PHPExcel/IOFactory.php';
include('inc/database_connection.php');
$conn = mysqli_connect(DATABASE_HOST, DATABASE_USER, DATABASE_PASSWORD, DATABASE_NAME); 

$sql2 = '
        SELECT  t2.*
        FROM    (
                    SELECT  staff_id, projectNo, longname, username, title, process, creation_time as min
                    FROM    archived
                    WHERE   creation_time IN (SELECT min(creation_time) FROM archived)
                ) t1
        RIGHT JOIN (
                    SELECT  staff_id, projectNo, longname, username, title, process, creation_time as max
                    FROM    archived
                    WHERE   creation_time IN (SELECT max(creation_time) FROM archived)
                ) t2
        ON  t1.staff_id = t2.staff_id AND
            t1.projectNo = t2.projectNo AND
            t1.process = t2.process
        WHERE t1.staff_id is null
        ';
$query2 = mysqli_query($conn, $sql2);   
// Instantiate a new PHPExcel object
$objPHPExcel = new PHPExcel(); 
// Set the active Excel worksheet to sheet 0
$objPHPExcel->setActiveSheetIndex(0); 
// Initialise the Excel row number
$rowCount = 1; 
// Iterate through each result from the SQL query in turn
// We fetch each database result row into $row in turn

while ($data2 = mysqli_fetch_assoc($query2)) 
{
    //$oldest_date=$data2["min"];
    $newest_date=$data2["max"];
    $staffid=$data2["staff_id"];
    $longnm=$data2["longname"];
    $usrnm=$data2["username"];
    $projNo=$data2["projectNo"];
    $ttle=$data2["title"];
    $proc=$data2["process"];

    $objPHPExcel->getActiveSheet()->SetCellValue('A'.$rowCount, $staffid);
    $objPHPExcel->getActiveSheet()->SetCellValue('B'.$rowCount, $longnm);   
    $objPHPExcel->getActiveSheet()->SetCellValue('C'.$rowCount, $usrnm);
    $objPHPExcel->getActiveSheet()->SetCellValue('D'.$rowCount, $projNo);   
    $objPHPExcel->getActiveSheet()->SetCellValue('E'.$rowCount, $ttle);
    $objPHPExcel->getActiveSheet()->SetCellValue('F'.$rowCount, $proc);     
    // Increment the Excel row counter
    $rowCount++;    
}   

$file_name = 'ExcelChanges';
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save($file_name.'.xls');

然后我正在尝试发送电子邮件:

$to = 'powqb@mail.com';
$subject = 'Test email with attachment';
$random_hash = md5(date('r', time()));
$message = 'test';

$headers = "From: webmaster@example.com\r\nReply-To: webmaster@example.com";
$headers .= "\r\nContent-Type: multipart/mixed; boundary=\"PHP-mixed-".$random_hash."\"";

$attachment = chunk_split(base64_encode(file_get_contents($file_name.'.xls')));

mail( $to, $subject, $message, $headers );

我收到消息但是空的。我只进行了单词测试,内部没有附件。可能有什么问题?

0 个答案:

没有答案