Получение пустого csv файла во вложении электронной почты
Привет,
Используя php я пытаюсь отправить данные таблицы базы данных в формате csv во вложении ниже приведен код, который я пробовал, но я получаю пустой csv-файл во вложении.
Что я уже пробовал:
<?php $hostname = "localhost"; $username = "root"; $password = ""; $database = "owner"; $conn = mysql_connect($hostname, $username, $password) or die(mysql_error()); $db_selected = mysql_select_db($database, $conn); $sql = mysql_query("SELECT * FROM bucket"); $row=mysql_fetch_assoc($sql); $filename='ptp/'.$filename.'.csv'; $fp=fopen($filename,"w"); $seperator=""; $comma=""; foreach($row as $name =>$value) { $seperator.=$comma.''.str_replace('','""',$name); $comma=","; } $seperator.="\n"; $seperator; fputs($fp,$seperator); mysql_data_seek($sql,0); while($row=mysql_fetch_assoc($sql)) { $seperator=""; $comma=""; foreach($row as $name =>$value) { $seperator.=$comma.''.str_replace('','""',$value); $comma=","; } $seperator.="\n"; fputs($fp,$seperator); } fclose($fp); $my_file = $filename.'.csv'; $path = "temp/"; $from_name = "PTP database"; $from_mail = "r.shishodia@99acres.com"; $mailto = "r.shishodia@99acres.com"; $subject = "This is a mail with attachment."; $message = "Hi,\r\n do you got attachment?\r\n\r\Hara"; $replyto="haraprasad@lemonpeak.com"; $file = $path.$my_file; $file_size = filesize($file); $handle = fopen($file, "r"); $content = fread($handle, $file_size); fclose($handle); $content = chunk_split(base64_encode($content)); $uid = md5(uniqid(time())); $name = basename($file); $header = "From: ".$from_name." <".$from_mail.">\r\n"; $header .= "Reply-To: ".$replyto."\r\n"; $header .= "MIME-Version: 1.0\r\n"; $header .= "Content-Type: multipart/mixed; boundary=\"".$uid."\"\r\n\r\n"; $header .= "This is a multi-part message in MIME format.\r\n"; $header .= "--".$uid."\r\n"; $header .= "Content-type:text/plain; charset=iso-8859-1\r\n"; $header .= "Content-Transfer-Encoding: 7bit\r\n\r\n"; $header .= $message."\r\n\r\n"; $header .= "--".$uid."\r\n"; $header .= "Content-Type: application/octet-stream; name=\"".$filename."\"\r\n"; // use different content types here $header .= "Content-Transfer-Encoding: base64\r\n"; $header .= "Content-Disposition: attachment; filename=\"".$filename."\"\r\n\r\n"; $header .= $content."\r\n\r\n"; $header .= "--".$uid."--"; if (mail($mailto, $subject, $message, $header)){ echo "Mail send"; } else{ echo "can not send mail"; } ?>
Richard MacCutchan
Вы проверили, что ваш код действительно генерирует правильные строки в каждом цикле?