程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 怎麼把php導出的Excel 作為郵件發送

怎麼把php導出的Excel 作為郵件發送

編輯:關於PHP編程

       如何把php導出的Excel 作為郵件發送

      現在實現了點擊後下載excel,和發送文本郵件的功能,怎麼能結合下,把php導出的excel作為附件發送就完美了。

      1 .生成excel:

      header("Content-type:application/octet-stream");

      header("Accept-Ranges:bytes");

      header("Content-type:application/vnd.ms-excel");

      header("Content-Disposition:attachment;filename=".$filename.".xls");

      header("Pragma: no-cache");

      header("Expires: 0");

      if (!empty($title)){

      foreach ($title as $k => $v) {

      $title[$k]=iconv("UTF-8", "GB2312",$v);

      }

      $title= implode("t", $title);

      echo "$titlen";

      }

      if (!empty($data)){

      foreach($data as $key=>$val){

      foreach ($val as $ck => $cv) {

      $data[$key][$ck]=iconv("UTF-8", "GB2312", $cv);

      }

      $data[$key]=implode("t", $data[$key]);

      }

      echo implode("n",$data);

      }

      2 . 發送郵件:

      用了phpmailer類庫

      $mail = new PHPMailer();

      $mail->CharSet = 'UTF-8';

      $mail->IsSMTP();

      $mail->SMTPAuth = true;

      $mail->SMTPSecure = '';

      $mail->Host = $config['SMTP_HOST']; // SMTP 服務器

      $mail->Port = $config['SMTP_PORT']; // SMTP服務器的端口號

      $mail->Username = $config['SMTP_USER']; // SMTP服務器用戶名

      $mail->Password = $config['SMTP_PASS']; // SMTP服務器密碼

      $mail->SetFrom($config['FROM_EMAIL'], $config['FROM_NAME']);

      $replyEmail = $config['REPLY_EMAIL']?$config['REPLY_EMAIL']:$config['FROM_EMAIL'];

      $replyName = $config['REPLY_NAME']?$config['REPLY_NAME']:$config['FROM_NAME'];

      $mail->AddReplyTo($replyEmail, $replyName);

      $mail->Subject = $subject;

      $mail->MsgHTML($body);

      $mail->AddAddress($to, $name);

      if(is_file($attachment)){ // 添加附件

      $mail->AddAttachment($attachment);

      }

      return $mail->Send()

      ------解決方案--------------------

      第7行處加入

      ob_start();

      第23行後加入

      $s = ob_get_flush();

      file_put_contents($filename.".xls", $s);

      $attachment = $filename.".xls";

      執行郵件發送

      ------解決方案--------------------

      肯定是你哪裡出錯了,認真檢查一下

      你實際輸出的是文本文件,用記事本就可打開

      ob 函數的功能、用法,手冊中都有

      ------解決方案--------------------

      汗!那樣導出的還沒有路徑,你如何作為附件發送呢??

      你這不是天方夜譚麼?

      ------解決方案--------------------

      提個思路,你可參考下:

      先把excel保存在服務器上,然後獲得該excel的路徑,然後作為附件進行email發送,如果你不需要這個文件了,然後再執行刪除操作就OK了

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved