Отправка почты со вложениями на php
Здраствуйте. Есть функция, написанная на php для отправки почты с приложенными файлами. Вот она:
function send_mail($to, $from, $subj, $text, $files = null, $isHTML = false){
$boundary = "--".strtoupper(md5(uniqid(rand())));
$headers = "From: ".$from."\nContent-Type: multipart/mixed;boundary=\"$boundary\"\n";
if (!$isHTML){
$type = 'text/plain';
}else{
$type = 'text/html';
}
// echo "BODY: :".$text;
$body = $boundary."\nContent-Type: ".$type."; charset=utf-8\nContent-Transfer-Encoding: Quot-Printed\n\n".$text."\n\n";
if ((is_array($files))&&(!empty($files))){
foreach($files as $filename => $filecontent){
if(strlen($filename)>0 && $filecontent)
$body .= $boundary."\nContent-Type: application/octet-stream; file_name = \"".$filename."\"\nContent-Transfer-Encoding: base64\nContent-Disposition: attachment; filename = \"".$filename."\"\n\n".chunk_split(base64_encode($filecontent))."\n";
echo "\nBODY: ".$body;
}
}
return mail($to, $subj, $body, $headers);
}
Нече в ней замудренного нет, но вот почему-то полученное письмо нормально не отображается. Например если я пишу:
$files = array('123.txt' => file_get_contents('[full_path_to_file]/123.txt'));
$send = kmail ("xxx@mail.ru", "someemail@server.com", "Test", "Just a test. Without russian characters", $files);
Мне приходит сообщение со следующими заголовками:
Date: Fri, 6 May 2011 00:14:58 +0700 (NOVST)
Message-Id: <201105051714.p45HEwCW041315@server.com>
To: xxx@mail.ru
Subject: TEst
X-PHP-Originating-Script: 2001:send.php
From: someemail@server.com
MIME-Version: 1.0
Content-Type: multipart/mixed;boundary="--563EB809F4CD1C783E4CAFFA3C2812F3"
X-Spam: Not detected
X-Mras: OK
----563EB809F4CD1C783E4CAFFA3C2812F3--
А все остальное в одном единственном вложенном файле с неизвестно каким названием:
--D08148968BCC11D17FACF1AA4E004C9A
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: Quot-Printed
Just a test. Without russian characters
--D08148968BCC11D17FACF1AA4E004C9A
Content-Type: application/octet-stream; file_name = "123.txt"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename = "123.txt"
MTIzMjEzMTIzMTIzMTIzMTIzMTIzMTIzZWRhc2RzZGZzZGFmc2Fmc2FkZndlZnNkZHZjeGN6dnpz
ZHY=
----D08148968BCC11D17FACF1AA4E004C9A--
Т.е. как бы письмо приходит полностью, только криво воспринимается почтовым клиентом... В чем может быть проблема? Заранее спасибо.