За последние 24 часа нас посетили 103280 программистов и 5656 роботов. Сейчас ищут 2282 программиста ...

Отправка картинок в теле письма

Тема в разделе "Работа с почтой", создана пользователем Юрий Юрков, 25 окт 2006.

  1. Юрий Юрков

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

    С нами с:
    25 окт 2006
    Сообщения:
    16
    Симпатии:
    0
    Помогите новичку. Пытаюсь отправить письмо с картинкой, ничего не получается. Подскажите что не так?
    PHP:
    1. <?php
    2. $file_name="5.jpg";
    3. $subj="Отправка изображения";
    4. $bound="spravkaweb-1234";
    5. $headers="From: \"vega\" <info@card.vl.ru> \n";
    6. $headers.="To: [email=webmaster@vega.pk.ru]webmaster@vega.pk.ru[/email] \n";
    7. $headers.="Subject: $subj \n";
    8. $headers.="Mime-Version: 1.0 \n";
    9. $headers.="Content-Type: multipart/alternative; boundary=\"$bound\" \n";
    10. $body="--$bound \n";
    11. $body.="Content-type: text/html; charset=\"windows-1251\" \n";
    12. $body.="Content-Transfer-Encoding: 8bit \n\n";
    13. $body.="<h3>Привет</h3>
    14. Это проба отправки письма с прикрепленной картинкой.<BR>
    15. А вот и сама картинка:<BR>
    16. <img src=\"cid:spravkaweb_img_1\">";
    17. $body.="\n\n--$bound \n";
    18. $body.="Content-Type: image/jpeg; name=\"".basename($file_name)."\" \n";
    19. $body.="Content-Transfer-Encoding:base64 \n";
    20. $body.="Content-ID: <spravkaweb_img_1> \n\n";
    21. $f=fopen($file_name,"rb");
    22. $body.=base64_encode(fread($f,filesize($file_name)))." \n";
    23. $body.="--$bound-- \n\n";
    24. mail("webmaster@vega.pk.ru", $subj, $body, $headers);
    25. ?>
    26.  
     
  2. Anonymous

    Anonymous Guest

    хм... что именно не получается? На первый взгляд, все верно...
     
  3. Юрий Юрков

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

    С нами с:
    25 окт 2006
    Сообщения:
    16
    Симпатии:
    0
    Письмо приходит, но в письме не отображается картинка. От картинки только прямоугольник :D
     
  4. Mavir

    Mavir Guest

    Попробуй отправить письмо простым почтовиком. А потом посмотри исходный код письма.
     
  5. Anonymous

    Anonymous Guest

    Юрий Юрков, вероятно, проблема с почтовиком. Воспользовался вашим кодом - все отработало корректно, получал Outlook Express 6.00.2900.2180
    Возможно, картинки самой нет? =))
     
  6. Mavir

    Mavir Guest

    Юрий Юрков
    Я тоже попробавал код, и тоже показало рисунок. Почтовик - TheBat.

    Могу только посоветовать строку
    $body.=base64_encode(fread($f,filesize($file_name)))." \n";
    Заменить на
    $body.=wordwrap(base64_encode(fread($f,filesize($file_name))),72, "\n", 1)." \n";
     
  7. только не wordwrap, а chunk_split, которая для этого и предназначена
     
  8. Юрий Юрков

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

    С нами с:
    25 окт 2006
    Сообщения:
    16
    Симпатии:
    0
    Почтовик поменял всё заработало. Спасибо :)
    Но почему на моем Microsoft Outlook картинка не отображается?
     
  9. Юрий Юрков

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

    С нами с:
    25 окт 2006
    Сообщения:
    16
    Симпатии:
    0
    А можно таким способом отправить flash?
     
  10. -=DSM=-

    -=DSM=- Активный пользователь

    С нами с:
    26 дек 2006
    Сообщения:
    1
    Симпатии:
    0
    Адрес:
    Днепропетровск
    Ребята, извените за вторжения, А куда встовляется этот код?
    И можно чтоб отображалась Flash?
     
  11. bobrovnik

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

    С нами с:
    4 окт 2007
    Сообщения:
    1
    Симпатии:
    0
    Ок, а что надо изменить чтобы отправить несколько вложенных картинок?
     
  12. vb

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

    С нами с:
    6 июн 2006
    Сообщения:
    911
    Симпатии:
    0
    Адрес:
    Saint-Petersburg