mysql - 从 MySQL 数据库创建 CSV 并附加到 PHPMailer 电子邮件

标签 mysql phpmailer export-to-csv email-attachments

我正在尝试创建一个 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); 

  ?>

最佳答案

您正在使用旧版本的 PHPMailer,即使在 rpi 上,您也应该运行足够新的 PHP 版本,以允许您使用 PHPMailer 6.x。

您正在发送之前删除要发送的文件。 addAttachment 存储文件的详细信息,但不存储其内容,在实际发送之前不会读取其内容。因此,将unlink 调用移至send 调用之后

关于mysql - 从 MySQL 数据库创建 CSV 并附加到 PHPMailer 电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51603035/

相关文章:

excel - 自动将 Xls 转换为 CSV

python - Pandas:保存到 csv 时的内存差异(Dataframe 与多索引系列)

php - sql 使用 start_time 和 end_time 进行复杂数据排序

php - 使用 PHPMailer 在邮件中添加附件失败

javascript - 将 html 数据从 angularjs 发布到 PHP

php - 无法使用 PHPMailer 发送包含正确字符的电子邮件

oracle - 如何将数据从 PL/SQL 包导入 SPSS?

php - 设置 php.ini、my.cnf 和 httpd.conf (apache2.conf) 字符集有什么坏处吗?

mysql - 在同一 JOIN 中使用各种 WHERE 组合获取结果

mysql - Rstudio-server 中的 sql 查询结果为空