SQL 쿼리 시퀀스를 실행하고 결과를 CSV에 쓰고 저장하는 PHP 스크립트를 실행하고 있습니다. 또한 보고서를받는 사람에게 보냅니다.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);
, 나는 완전히 그것을 그 핸들을 사용할 수 없다는 사실을 간과. 감사! –