我想使用 php 发送带有附件(CSV 文件)的电子邮件。它工作正常,但我想根据数据库中的一个表的数据制作该 csv 文件。我该怎么做??
<?php
require_once('\PHPMailer-master\class.phpmailer.php');
$email = new PHPMailer();
$email->From = 'myid@yahoo.in';
$email->FromName = 'name';
$email->Subject = 'Message Subject';
$email->Body = "GO away";
$email->AddAddress( 'abc@example.com' );
header('Content-Type: text/csv; charset=utf-8');
header('Content-Disposition: attachment; filename=data.csv');
$output = fopen('php://output', 'w');
fputcsv($output, array('serial', 'group','end'));
$rows = mysqli_query($db, 'SELECT * FROM list');
while ($row = mysqli_fetch_assoc($rows)) {
fputcsv($output, $row);
}
fclose($output);
mysqli_close($db);
$file_to_attach = 'data.csv';
$email->AddAttachment( $output , 'data.csv' );
return $email->Send();
?>
最佳答案
将 $output = fopen('php://output', 'w');
行更改为 $output = fopen('data.csv', 'w') ;
.
这应该在 PHPscript 所在的目录中创建一个 data.csv 文件。拥有该目录上脚本的写入权限非常重要。
关于php - 使用 php 从数据库获取数据并作为电子邮件附件发送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38479566/