[CLOSED]PHP отсылка писем с аттачем.

uncle17

Пользую функцию:

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,12);

$boundary = "--".md5(uniqid(time; // генерируем разделитель
$headers .= "MIME-Version: 1.0\n";
$headers .="Content-Type: multipart/mixed; boundary=\"$boundary\"\n";
$multipart .= "--$boundary\n";
$kod = 'windows-1251'; // или $kod = 'windows-1251';
$multipart .= "Content-Type: text/html; charset=$kod\n";
$multipart .= "Content-Transfer-Encoding: Quot-Printed\n\n";
$multipart .= "$html\n\n";
$message_part = "";
$message_part .= "Content-Type: application/octet-stream";
$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;
}
else echo "Всё ОК, письмо отослано";
}

Всё ОК, всё приходит, ничего не бьется, но аттач всегда почему-то назван "oc.dat".
Где подправить, чтоб сохранялось оригинальное имя файла?

artimon

А посмотреть заголовки какого-нибудь письма?
Content-Type: IMAGE/JPEG; name="photo.jpg"
Content-transfer-encoding: base64
Content-Disposition: attachment; filename="photo.jpg"

uncle17

да, всё, разобрался
Оставить комментарий
Имя или ник:
Комментарий: