Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Имя файла при отправке на e-mail
Форумы портала PHP.SU » » Кодировки и все смежное » Имя файла при отправке на e-mail

Страниц (1): [1]
 

1. xttz - 26 Августа, 2011 - 15:56:04 - перейти к сообщению
При отправке письма имя файла кодируется непонятно во что, например файл
Печатная плата.rar в пришедшем на e-mail письме стал п©п╩п╟я┌п╟.rar.

Вот код отвечающий за отправку вложения. Кодировка письма utf-8.
PHP:
скопировать код в буфер обмена
  1.  
  2.             $body .= "Content-Type: application/octet-stream; ";
  3.             $body .= "name=\"" . basename($file_name) . "\"\n";
  4.             $body .= "Content-Transfer-Encoding:base64\n";
  5.             $body .= "Content-Disposition:attachment\n\n";
  6.             $body .= base64_encode(fread($file, filesize($file_name)));
  7.  
2. xttz - 26 Августа, 2011 - 20:50:36 - перейти к сообщению
Вообщем ответ такой:
строку:
PHP:
скопировать код в буфер обмена
  1. $body .= "name=\"" . $file_name . "\"\n";

заменяем на
PHP:
скопировать код в буфер обмена
  1. $body .= "name==?utf-8?Q?" . $file_name . "?=\n";


если есть
PHP:
скопировать код в буфер обмена
  1. $body .= "filename=\"" . $file_name . "\"\n\n";

то меняем на
PHP:
скопировать код в буфер обмена
  1. $body .= "filename==?utf-8?Q?" . $file_name . "?=\n\n";

 

Powered by ExBB FM 1.0 RC1