Проблема при отправки письма с прикреплёным файлом. Файл находится на сервере zip-архив, отправняется при помощи приложенной функции. При получении почты, у получателя приложенный файл переименовывается и изменяет разрешение, на Untitled.dat. Как это исправить?
Код | function send_mail($to, $thm, $html, $path)
{
$fp = fopen($path,"r");
if (!$fp)
{
print "Файл $path не может быть прочитан";
exit();
}
$file = fread($fp, filesize($path));
fclose($fp);
$path = substr($path,6);
$boundary = "--".md5(uniqid(time())); // генерируем разделитель
$multipart .= "--$boundary\n";
$kod = 'windows-1251';
$multipart .= "Content-Type: text/html; charset=$kod\n";
$multipart .= "Content-Transfer-Encoding: Quot-Printed\n\n";
$multipart .= "$html\n\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-Type: multipart/mixed; boundary=\"$\"\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "From: [email protected]\n";
$headers .="Content-Type: multipart/mixed; boundary=\"$boundary\"\n";
$message_part = "";
$message_part .= "Content-Type: application/x-zip-compressed";
$message_part .= "; file_name = \"$path\"\n";
$message_part .= "Content-Transfer-Encoding: base64\n";
$message_part .= "Content-Disposition: attachment; filename = \"".$path."\"\n\n";
$message_part .= chunk_split(base64_encode($file))."\n";
$multipart .= "--$boundary\n".$message_part."--$boundary--\n";
if(!mail($to, $thm, $multipart, $headers))
{
echo "К сожалению, письмо не отправлено";
exit();
}
}
|
|