1
我正在运行一个运行一系列SQL查询的PHP脚本,将结果写入CSV并保存。它还会将报告发送给收件人。PHPMailer,附件设置无法访问文件(csv文件)
该代码的CSV部分完美工作,PHPMailer部分发送测试电子邮件没有问题。但是,当我取消注释PHPMailer的附件部分并运行脚本时,它会显示“文件无法访问”。当我替换评论时,它会写入文件并再次发送测试电子邮件。
有问题的线,我的评论/取消注释相应的,是:$mail->addAttachment($fp);
因此,两件工作,但这种使用PHPMailer的是我的第一次,我不知道去的最佳途径关于这个问题。据我所知,我正在使用addAttachment
代码,并且最后关闭了CSV。
任何帮助,非常感谢。
脚本:
if (!$result) die('Couldn\'t fetch records');
$num_fields = mysqli_num_fields($result);
$headers = array();
while ($fieldinfo = mysqli_fetch_field($result)) {
$headers[] = $fieldinfo->name;
}
$fp = fopen('dailyReportTestPHP.csv', 'w');
if ($fp && $result) {
fputcsv($fp, $headers);
while ($row = $result->fetch_array(MYSQLI_NUM)) {
fputcsv($fp, array_values($row));
}
}
$mail = new PHPMailer(true);
$address = "[email protected]";
try{
$mail->setFrom("[email protected]");
$mail->addAddress($address);
$mail->addAttachment($fp);
$mail->isHTML(true);
$mail->Subject = "Test";
$mail->Body = "Test";
$mail->Send();
echo 'message sent';
} catch (Exception $e){
echo 'message failed';
echo 'mail error:' . $mail->ErrorInfo;
}
fclose($fp);
这完美地工作,我完全忽略了一个事实,即它不能使用该句柄。谢谢! –