Отправка по почте файла с именем на русском

webtime

Новичок
Собственно, никак не выходит:
Гугл и и поиск по форуму юзал.
Всегда пользовался связкой pear Mail+Mail_Mime

PHP:
include('Mail.php');
include('Mail/mime.php');


$crlf = "\n";
$hdrs = array( 'From'=> '[email protected]', 'Subject' => 'тестовое письмо' );
$mime = new Mail_mime($crlf);
$mime->setHTMLBody('тело письма');

$mime->addAttachment("файл.xls", , "application/vnd.ms-excel");

$body = $mime->get(array('html_charset'=>'windows-1251','text_charset'=>'windows-1251','head_charset'=>'windows-1251', "text_encoding" => "8bit")
);

$hdrs = $mime->headers($hdrs);
$mail =& Mail::factory('mail');
$mail->send('[email protected]', $hdrs, $body);
При этом bat корректно отображает русские буквы прикрепленного файла, а веб-интерфейс яндекса не отображает имя (только расширение). mail.ru вообще начинает сама именовать файлы по порядку 1.xls 2.xls и т.д.

В исходниках письма

Content-Type: application/vnd.ms-excel;
name*=US-ASCII''%EF%F0%E0%E9%F11.xls
Content-Disposition: attachment;
filename*=US-ASCII''%EF%F0%E0%E9%F11.xls
Content-Transfer-Encoding: base64
По идее вместо US-ASCII должна быть нормальная кодировка, но как ее там поправить? Пробовал ставить вместо windows-1251 utf-8, читать файл и прикреплять прочитанный из переменной, один хрен (((

Как побороть?
 

webtime

Новичок
Посмотрел. Здорово все расписано про заголовки. Но к теме отношения не нашел.
У меня не возникает вопросов - как отправить письмо, состоящее из текста или из текста + HTML чтобы проблем с кодировкой не было, как с помощью pear Mail так и с помощью mail()
Также у меня не возникает вопросов как приаттачить файл с именем на латинице.

Проблема с прикреплением файлов с РУССКИМИ именами.
 

Beavis

Banned
только что как раз возникла такая же проблема :)

решение:
$mime->addAttachment($content, 'application/pdf', $filename, false, 'base64', 'attachment', '', '', '', 'base64', 'utf-8', '', 'utf-8');

это если имена файлов в utf-8
 

webtime

Новичок
только что как раз возникла такая же проблема :)

решение:
$mime->addAttachment($content, 'application/pdf', $filename, false, 'base64', 'attachment', '', '', '', 'base64', 'utf-8', '', 'utf-8');

это если имена файлов в utf-8
Спасибо, Beavis! Теперь в яндексе все ок.
Блин, вот как можно было в доках такое не заметить, ведь смотрел же там!
 
Сверху