Makcym1
Новичок
Есть старая добрая функция по отправке почты с вложением. Попробовал сделать загрузку нескольких файлов. Письмо доходит, все файлы названы как надо, но размер по 1 байту.
Почитал поиск в основном решения с подключением библиотек.
$filename передаю как массив
Буду рад любым советам.
Почитал поиск в основном решения с подключением библиотек.
PHP:
function FileMail( $from, $to, $subj, $text, $filename)
{
$f = fopen($filename,"rb");
$un = strtoupper(uniqid(time()));
$head = "From: $from\n";
$head .= "To: $to\n";
$head .= "Subject: $subj\n";
$head .= "X-Mailer: PHPMail Tool\n";
$head .= "Reply-To: $from\n";
$head .= "Mime-Version: 1.0\n";
$head .= "Content-Type:multipart/mixed;";
$head .= "boundary=\"----------".$un."\"\n\n";
$zag = "------------".$un."\nContent-Type:text/html;\n";
$zag .= "Content-Transfer-Encoding: 8bit\n\n$text\n\n";
foreach($filename as $k=>$file)
{
$zag .= "------------".$un."\n";
$zag .= "Content-Type: application/octet-stream;";
$zag .= "name=\"".basename($file)."\"\n";
$zag .= "Content-Transfer-Encoding:base64\n";
$zag .= "Content-Disposition:attachment;";
$zag .= "filename=\"".basename($file)."\"\n\n";
$zag .= chunk_split(base64_encode(fread($f,filesize($file))))."\n";
}
if (!@mail("$to", "$subj", $zag, $head))
return 0;
else
return 1;
}
PHP:
$filename[]='files/1.doc';
$filename[]='files/2.doc';