Проблема с base64_encode

djigor3

Новичок
Проблема с base64_encode

На 2003 Server запущены Apache, PHP.
Проблема с аттачем файла к письму (на примере аттача html-файла).
Фрагмент кода.
...
$fileattach = "123.html\r\n";
$zip_content = '';
$fd = fopen ($file_name, "rb");
while(!feof($fd))
$zip_content .= base64_encode(fread($fd, 54))."\r\n";
fclose($fd);
...
Письмо приходит с вложением, но при открытии вложенного файл он отображается не полностью.

Проверял в "ручном"режиме. Открывал исходный файл, кодировал в base64. Получившееся сново декодировал - проблема остается: файл получается меньше исходного, только его часть.
В base64_encode(fread($fd, 54)) пробовал менять на 76, получается беспорядочные обрывки HTML-кода.

На стороне хостер-провайдера этот же скрипт работает без проблем, правда там UNIX-система :)

Подскажите в чем трабл?
 

djigor3

Новичок
Вот исходник. На стороне хостера работает.

$boundary = md5(uniqid(time()));
$text = "текст";
$fileattach = "123.html\r\n";
$zip_content = '';
$fd = fopen ($file_name, "rb");
while(!feof($fd))
$zip_content .= base64_encode(fread($fd, 54))."\r\n";
fclose($fd);
$inbody = "Content-Type: application/x-zip-compressed;\tname=\"123.html\"\r\n".
"Content-Transfer-Encoding: base64\r\n".
"Content-Disposition: attachment;\tfilename=\"123.html\"\r\n".
"\r\n".
"$zip_content\r\n".
"\r\n".
"--$boundary\r\n";
$subject = "тема";
$from = "email@email";
$to = "email@email";

$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: multipart/mixed;\tboundary=\"$boundary\"\r\n";
$headers .= "X-MSMail-Priority: High\r\n";
$headers .= "от ... <mail@mail>\r\n";

$body = "This is a multi-part message in MIME format.\r\n".
"\r\n".
"--$boundary\r\n".
"$inbody".
"Content-Type: text/plain; charset=\"Windows-1251\"\r\n".
"Content-Transfer-Encoding: 8bit\r\n\r\n".
"\r\n".
"$text\r\n
"\r\n".
"--$boundary--";

mail($to, $subject, $body, $headers);
 
Сверху