로그 데이터를 생성하여 메일에 csv
형식으로 보내야합니다. -이 줄 것이다리소스를 읽고 보내는 방법은 무엇입니까?
public function sendMail(){
$csv = $this->createCSV();
$subject = $this->getMessage('subject');
$message = $this->getMessage('message');
$headers = $this->generateHeaders($csv, $message);
mail('[email protected]', $subject, $message, $headers);
}
private function createCSV(){
$data = $this->getAVG();
$csv = fopen('php://temp', 'w+');
// long statistics generation
fclose($csv);
return $csv;
}
private function generateHeaders($file, $message){
$boundary = md5(uniqid(time()));
$headers = 'MIME-Version: 1.0'."\r\n";
$headers .= 'Content-Type: multipart/mixed; boundary="'.$boundary."\"\r\n";
$headers .= 'From: [email protected]'.$_SERVER['SERVER_NAME']."\r\n";
$headers .= '--'.$boundary."\r\n";
$headers .= "Content-Type: text/html; charset=utf-8\r\n";
$headers .= "Content-Transfer-Encoding: base64\r\n";
$headers .= "\r\n";
$headers .= chunk_split(base64_encode($message));
$headers .= '--'.$boundary."\r\n";
$headers .= "Content-Type: text/csv; name=\"ServersLogs.csv\"\r\n";
$headers .= "Content-Transfer-Encoding: base64\r\n";
$headers .= "Content-Disposition: attachment; filename=\"ServersLogs.csv\"\r\n";
$headers .= "\r\n";
$headers .= chunk_split(base64_encode(readfile($file)));
$headers .= "\r\n--".$boundary."--\r\n";
return $headers;
}
문제는 내가 서버에 파일을 저장하지 못할, 그래서 난
php://를 사용하지만이 파일을 읽을 수 없습니다 후이다
...
'/ tmp'에 파일 저장을 시도한 적이 있습니까? 거기에 권한이 있어야합니다. – fedorqui