Картинка в письме

amorfis

я стараюсь
Картинка в письме

Проблема с отправкой картинкой в теле письма. В почтовых клиентах все нормально отображается, но при просмотре письма через веб-интерфейс вместо письма квадратик. Перерыл кучу доков. ничего не помогло. Может где-то ошибка на поверхности?

PHP:
function XMail($from, $to, $subj, $text, $filename, $dir, $type) { 
    $f         = fopen($dir.$filename,"rb"); 
    $un        = strtoupper(uniqid(time())); 
    $head      = "From: $from\r\n"; 
    $head     .= "To: $to\r\n"; 
    $head     .= "Subject: $subj\r\n"; 
    $head     .= "X-Mailer: PHPMail Tool\r\n"; 
    $head     .= "Reply-To: $from\r\n"; 
    $head     .= "Mime-Version: 1.0\r\n"; 
    //$head     .= "Content-Transfer-Encoding:binary\r\n"; 
    $head     .= "Content-Type:multipart/mixed;"; 
    $head     .= "boundary=\"----------".$un."\"\r\n\r\n"; 

    $zag       = "------------".$un."\r\nContent-Type:text/html; charset=\"Windows-1251\"\r\n"; 
    $zag      .= "Content-Transfer-Encoding: binary\r\n\r\n$text\r\n\r\n"; 
    $zag      .= "------------".$un."\r\n"; 
    $zag      .= "Content-Type:".$type.";"; 
    $zag      .= "name=\"".$filename."\"\r\n"; 
    $zag      .= "Content-Disposition:attachment;"; 
    $zag      .= "filename=\"".$filename."\"\r\n"; 
    $zag      .= "Content-ID: <".$filename.">\r\n"; 
    $zag      .= "Content-Transfer-Encoding:base64\r\n"; 
    $zag      .= chunk_split(base64_encode(fread($f,filesize($dir.$filename))))."\r\n"; 
    $zag      .= " ------------".$un."\r\n\r\n"; 
    return @mail("$to", "$subj", $zag, $head); 
}
 

Фанат

oncle terrible
Команда форума
а ты всё равно забудь.
и про ошибочки на поверхности - тоже.
ошибки ищутся отладкой, а не разглядыванием поверхности.

тем более - в таком простом деле, как отправка писем.
посылаешь сам себе письмо с картинкой.
потом смотришь, что в нём написано, и пхп скриптом рисуешь то же самое
 

amorfis

я стараюсь
в том то и дело что нарисовал. И в почтовых клиентах все ок, а веб-интерфейс того же mail.ru не видит картинку. При чем mail.ru в тексте письма меняет
<img src="cid:5.jpg">

на

<img src="http://win.mail.ru/cgi-bin/readmsg?id=11656109020000005707;0;1&mode=attachment">

В итоге, получается, что mail.ru не может правильно закачать картинку. Хотя если на mail.ru послать картинку с адреса http://www.fonografgroup.ru/id_13/, то все ОК.
 

Фанат

oncle terrible
Команда форума
ну вот и посмотри, как выглядят письма, которые мейл ру показывает, и посмотри, как там сделано.
 

amorfis

я стараюсь
Отличие в том что там стоит так:

Content-type: multipart/related
Type="multipart/mixed";

Но если я у себя вставляю генерацию данного кода, то у меня в письме просто выводится в виде текста все что стоит после этого заголовка.
 

amorfis

я стараюсь
эти. Их совсем убрал и поставил
Content-Type: multipart/alternative;

помогло. Но странно как-то, что те строчки не работали.
 

Фанат

oncle terrible
Команда форума
может, стоит раз в жизни почитать документацию, а не заниматься шаманством - одну строчку убрал, одну добавил?
 

amorfis

я стараюсь
стоит. Так обычно и делаю, но просто рыл два часа маны, а не получалось. Вот и решил совета спросить.
 
Сверху