отправка письма на mail.ru - проблема с кодировкой

Diakonrus

Новичок
Добрый день. Сталкнулся с такой проблеммой.
Я отправляю на mail.ru письмо с атачем файла. Все приходит, но русский текст идет символами вопроса(http://c2n.me/ioStfH.png), хотя когда смотриш на письмо в списке - текст отображается нормально (а когда открываеш письмо - вместо кирилицы символы).
http://c2n.me/ioLZ0e.png - тут в списке тело письма видно нормально
http://c2n.me/ioStfH.png - а когда открываеш письмо - символы вместо кириллицы




header('Content-Type: text/plain; charset="UTF-8"');
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', FALSE);
header('Pragma: no-cache');
.........
$to = "[email protected]";
$from = "[email protected]";
$subject = "ДЖЭТ. Резюме от ".$surname." ".$name;
$message = "Пользователь ".$surname." ".$name." отправил на сайте ДЖЭТ свое резюме.".((!empty($comment)) ? " Сопроводительное письмо: ".$comment : "");
$boundary = "---";
$headers = "From: $from\nReply-To: $from\n";
$headers .= "Content-Type: multipart/mixed; boundary=\"$boundary\"";
$body = "--$boundary\n";
$body .= "Content-type: text/html; charset='utf-8'\n";
$body .= "Content-Transfer-Encoding: quoted-printablenn";
$body .= "Content-Disposition: attachment; filename==?utf-8?B?".base64_encode($filename)."?=\n\n";
$body .= $message."\n";
$body .= "--$boundary\n";
$file = fopen($uploaddir . $filename, "r");
$text = fread($file, filesize($uploaddir . $filename));
fclose($file);
$body .= "Content-Type: application/octet-stream; name==?utf-8?B?".base64_encode($uploaddir . $filename)."?=\n";
$body .= "Content-Transfer-Encoding: base64\n";
$body .= "Content-Disposition: attachment; filename==?utf-8?B?".base64_encode($uploaddir . $filename)."?=\n\n";
$body .= chunk_split(base64_encode($text))."\n";



Может кто подсказать в чем причина? Заранее спасибо! (файл с кодом в кодировке UTF-8 (без BOM))
$body .= "--".$boundary ."--\n";
mail($to, $subject, $body, $headers);
 

С.

Продвинутый новичок
Кодировка в body? Серьезно?

Давай научимся понимать и различать кодировку веб-страницы, письма, темы письма и аттачмента. И после этого снова вопрос: "Где указана кодировка письма?"
 

Diakonrus

Новичок
Простите, я не совсем понимаю.
В $body я кодирую текст файла и само сообщение $body .= "Content-type: text/html; charset='utf-8'\n";
В $headers - заголовки
Если вы сожете сказать где я не указал кодировку, прошу скажите
 

С.

Продвинутый новичок
В $body я кодирую текст файла и само сообщение $body .= "Content-type: text/html; charset='utf-8'\n"
Ага, у тебя вообще нет "самого сообщения". Сопроводительный текст тоже в виде аттачмента шлется. А какой смысл в этом? Пустое письмо с двумя аттачментами, одно из которых -- простой текст.
 

artoodetoo

великий и ужасный
AnrDaemon, прощаю.Если у Вас есть поправочка, сделайте это пожалуйста, без загадок.
Прежде чем отвечать человеку, я не читал RFC. Я отметил косяк в его коде и заглянул в имеющиеся аналоги чтобы проверить себя.

Возможно Вы хотели сказать про CRLF vs. LF. На практике работает и LF, а топикстартер живой тому пример. Косяк в другом.
 
Сверху