私は一連のSQLクエリを実行し、結果をCSVに書き込み、保存するPHPスクリプトを実行しています。レポートを受信者にメールします。PHPMailer、添付ファイルの設定でファイルにアクセスできない(csvファイル)
コードのCSV部分は完全に機能し、PHPMailer部分は問題のないテスト電子メールを送信します。しかし、私がPHPMailerの添付部分をコメント解除してスクリプトを実行すると、「ファイルにアクセスできませんでした」と表示されます。コメントを置き換えると、ファイルが書き込まれ、テスト電子メールが再度送信されます。私はそれに応じてコメントを解除/コメント
問題の行は、次のとおりです。$mail->addAttachment($fp);
ので、2枚が働いているが、これは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);
は、私は完全にそれがそのハンドルを使用することができなかったという事実を見落とし。ありがとう! –