У меня возникла проблема. Через mail() отправляется письмо с двумя аттачами-картинками. Письмо нормально отправляется, нормально приходит. Но если его смотреть через Outlook, The Bat!, гугловский веб-интерфейс - то все нормально. Проблемы начинаются с нашими почтовиками. Яндекс не совсем корректно показывает форматирование (CSS не воспринимает, похоже), но это ладно бы - он не показывает картинки. То есть аттачи есть, но они почему-то в яндекс приходят зашифрованные в base64. При их сохранении они, соответственно, тоже не открываются (зашифрованные-то)).
С mail.ru другая беда - он показывает ТОЛЬКО картинки. На наличие текста даже намека нет - ни ссылки, ничего. Якобы только две картинки пришло.
Подскажите, как с этим бороться?
function sendletter($to, $subject, $message, $attaches){
$bound="|||site.ru|||";
$headers="MIME-Version: 1.0\n";
$headers.="Content-Type: multipart/related; boundary=\"$bound\"\n";
$headers.="From: \"site.ru\" <info@site.ru>\n";
$headers.="To: $to\n";
$headers.="Subject: $subject\n";
$body="--$bound\n";
$body.="Content-Type: text/html; charset=\"windows-1251\"\n";
$body.="Content-Transfer-Encoding: 8bit \n\n";
$body.=$message;
$body.="\n\n--$bound\n";
$attachfiles=explode("|",$attaches);
for($i=0;$i<count($attachfiles);$i++){
$attach=explode(":",$attachfiles[$i]);
$body.="Content-Type: ".$attach[2]."; name=\"".basename($attach[0])."\"\n";
$body.="Content-Transfer-Encoding: base64 \n";
$body.="Content-ID: <".$attach[1]."> \n\n";
$f=fopen($attach[0],"r");
$body.=chunk_split(base64_encode(fread($f,filesize($attach[0]))))." \n";
if($i<count($attachfiles)-1)$body.="--$bound\n";
}
$body.="--$bound-- \n\n";
return mail($to, $subject, $body, $headers);
}
$message="
<html>
<head>
<title>Восстановление пароля на site.ru</title>
</head>
<body>
<style>
body{
background-color: #F5E6C9;
margin: 0px;
font-family: Arial;
font-size: 12px;
}
a:link{text-decoration: underline;}
a:visited{text-decoration: underline;}
a:hover{text-decoration: none;}
a:active{text-decoration: none;}
</style>
<body>
<table width=\"500\" cellpadding=\"3\" cellspacing=\"0\" border=\"0\" align=\"center\">
<tr valign=\"bottom\" style=\"padding-top: 10px;\">
<td><img src=\"cid:logo\"><br><img src=\"cid:door\"></td>
<td style=\"text-align:right; color: #333333;\">
<span style=\"font-size: 24px; color: #422609;\">site.ru</span><br><br>
<b>Ваш логин:</b> ".$data["login"]."<br>
<b>Ваш пароль:</b> ".$data["password"]."
</td>
</tr>
<tr>
<td colspan=\"2\" style=\"padding-top: 12px;\">
Ваш пароль успешно восстановлен. Если Вы не пользовались сервисом восстановления пароля на сайте, сообщите об этом администрации сайта.<br><br>
С уважением,<br>команда <a href=\"http://www.site.ru\" style=\"color: #000000;\">site.ru</a>
</td>
</tr>
</table>
</body>
</html>
";
sendletter("test@mail.ru","test letter", $message, "src/gold-title.jpg:logo:image/jpeg|782822.jpg:door:image/jpeg");
Спустя 13 минут, 44 секунды (15.10.2010 - 16:05) arvitaly написал(а):
методом научного тыка
Спустя 7 минут, 16 секунд (15.10.2010 - 16:12) RegEditor написал(а):
arvitaly, спасибо за ценный совет. Если бы мне этот метод помог, я бы, наверное, сюда не обращался.
Спустя 26 минут, 40 секунд (15.10.2010 - 16:39) twin написал(а):
Не далее как сегодня была тема.
Спустя 1 день, 7 часов, 55 минут, 12 секунд (17.10.2010 - 00:34) RegEditor написал(а):
спасибо, перейду в ту тему. искал, но почему-то не нашел

Спустя 23 часа, 52 минуты, 30 секунд (18.10.2010 - 00:27) RegEditor написал(а):
twin, я поменял все \n на \r\n - ничего не поменялось. Еще идеи?
Спустя 7 часов, 8 минут, 53 секунды (18.10.2010 - 07:36) arvitaly написал(а):
Ну попробуйте стиль прям на самих элементах прописать, ане в <style
Спустя 2 часа, 43 минуты, 49 секунд (18.10.2010 - 10:19) RegEditor написал(а):
так дело не в стиле, это как раз ерунда, может быть оно этим и лечится, не до этого пока что. почему яндекс картинки не дешифрует из base64, а мейл не показывает текст вообще?