从mysql数据库创建csv并附加到phpmailer电子邮件

ttcibm8c  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(377)

我试图使一个php文件,将创建一个我的数据库csv文件,并附加到一个phpmailer电子邮件,将自动发送。该文件将在一个网页服务器上的树莓皮。我得到的文件,以创建csv文件和发送电子邮件分开,但没有附加到电子邮件和发送正确的csv文件。任何帮助都将不胜感激!以下是迄今为止的代码:

<?php

    require("connect2.php");

    $filename = "hoursandpay.csv";

  header('HTTP/1.1 200 OK');
  header('Content-Type: text/csv; charset=utf-8');  
  header('Content-Disposition: attachment; filename=$filename');  
  header('Cache-Control: no-cache, no-store, must-revalidate');
  header('Pragma: no-cache');
  header('Expires: 0');
  $output = fopen($filename, 'w');  
  fputcsv($output, array('ID', 'PIN', 'FNAME', 'LNAME', 'DATE'));  
  $query = "SELECT * FROM hoursandpay ORDER BY DATE DESC";  
  $result = mysqli_query($conn, $query);  
  while($row = mysqli_fetch_assoc($result))  
  {  
       fputcsv($output, $row);  
  } 

  require_once('PHPMailer_5.2.0/class.phpmailer.php');

  $mail = new PHPMailer();
  $mail->IsSMTP();
  $mail->SMTPAuth = true;
  $mail->SMTPSecure = 'ssl';
  $mail->Host = "smtp.gmail.com";
  $mail->Port = 465;
  $mail->Username = "XXXXX@gmail.com";
  $mail->Password = "XXXXXXXX";
  $mail->SetFrom('XXXXXX@gmail.com', 'Test123');
  $mail->Subject = "Hours and Pay CSV File";
  $mail->MsgHTML('Hi! <br><br> Here is the Hours and Pay datatable. 
  <br><br> Thanks!');
  $mail->AddAddress('XXXXX@gmail.com', 'Test User');

  $mail->AddAttachment($filename);
  unlink($filename);

  $mail->Send();

  fclose($output); 

  ?>
sqyvllje

sqyvllje1#

您使用的是phpmailer的旧版本,即使在rpi上,您也应该运行足够新的php版本,以允许您使用phpmailer6.x。
您正在删除要在发送之前发送的文件。 addAttachment 存储文件的详细信息,但不存储其内容,直到实际发送时才读取。所以移动 unlink 打电话给 send 打电话。

相关问题