За последние 24 часа нас посетили 24190 программистов и 1531 робот. Сейчас ищет 1231 программист ...

Прикреплённые файлы (графика)

Тема в разделе "Работа с почтой", создана пользователем zooster, 13 фев 2006.

  1. zooster

    zooster Активный пользователь

    С нами с:
    13 фев 2006
    Сообщения:
    2
    Симпатии:
    0
    Есть проблема с прикреплёнными файлами *.jpg
    всё отсылается, только файл не открывается
    -------------------------------------------------------------

    <?php
    $path = "images/t_1.jpg";
    $basename = basename($path);
    $sep= chr(13) . chr(10);
    $headers = "From: hariharkaur@satnam.ru\r\n";
    //specify MIME version 1.0

    //unique boundary
    $boundary = uniqid("HTMLDEMO");

    $headers.= "MIME-Version: 1.0\r\n";
    $headers.= "Content-Type: multipart/mixed; boundary = $boundary\r\n\r\n";
    $headers.= "Content-Transfer-Encoding: base64;\r\n\r\n";

    //HTML version of message
    $body.= "--$boundary\r\n" .
    "Content-Type: text/html; charset=windows-1251\r\n" .
    "Content-Transfer-Encoding: base64;\r\n\r\n";
    $body.= chunk_split(base64_encode("(12) This the <b><i>News</i></b> version!<br><img src=\"$basename\"><br>"));

    //-- jpeg version ---

    $body.= "--$boundary\r\n".
    "Content-Type: image/jpeg; name=\"$basename\";\n".
    " Content-Transfer-Encoding: base64;\n";
    $body.= " Content-Disposition: inline;\n";
    $body.= " filename=\"$basename\"\r\n\r\n";
    $linesz = filesize($path) + 1;
    $fp = fopen($path, 'r');
    $file = fread($fp, $linesz);
    $str = chunk_split(base64_encode($file));
    $body.= $sep.$str."\n";
    fclose($fp);

    $body.= "--$boundary\r\n".

    //send message

    $r = mail("hariharkaur@mail.ru", "Новости satnam.ru", $body, $headers);
    echo '['.$r.']<br><br>';

    ?>
     
  2. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    1. Обрати внимание как представлена картинка в HTML.
    2. напиши нормальнй класс для работы или возьми готовый. так ты сам не разберешься что к чему.

    PHP:
    1.  
    2. <?php
    3.  
    4. ### 440hz zone
    5.  
    6. $TO     = [email='440hz@php.ru]'440hz@php.ru[/email]';
    7. $FROM = '"440hz" <440hz@php.ru>';
    8.  
    9. $path = "mesto_sobaki.jpg";
    10. $basename = basename($path);
    11.  
    12. $boundary = "----=_440hz_".md5(uniqid(time()));
    13.  
    14. $headers = "From: $FROM\n";
    15. $headers.= "MIME-Version: 1.0\n";
    16. $headers.= "Content-Type: multipart/mixed;\n";
    17. $headers.= "              boundary = $boundary\n";
    18. $headers.= "Content-Transfer-Encoding: base64;\n";
    19.  
    20. $html = "(12) This the <b><i>News</i></b> version!<br><img src=\"cid:001\">";
    21.  
    22. $body.= "--$boundary\n";
    23. $body.= "Content-Type: text/html; charset=windows-1251\n";
    24. $body.= "Content-Transfer-Encoding: base64;\n\n";
    25.  
    26. $body.= chunk_split(base64_encode($html));
    27.  
    28. $body.= "--$boundary\n";
    29. $body.= "Content-Type: image/jpeg;\n";
    30. $body.= "              name=\"$basename\";\n";
    31. $body.= "Content-Transfer-Encoding: base64;\n";
    32. $body.= "Content-Disposition: inline;\n";
    33. $body.= "                     filename=\"$basename\"\n";
    34. $body.= "Content-ID: <001>";
    35.  
    36. $fp = fopen($path, 'r');
    37. $file = fread($fp,filesize($path));
    38. fclose($fp);
    39.  
    40. $body.= "\n\n".chunk_split(base64_encode($file))."\n";
    41.  
    42. $body.= "--$boundary\r\n".
    43.  
    44. //send message
    45.  
    46. $r = mail($TO, "Новости satnam.ru", $body, $headers);
    47.  
    48. ?>
    49.