[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: отправить 2 картинки в теле письма
Mihalich41
Целый день сегодня провел изучая как красиво оформлять письма. Нашел код php который реализует вставку одной картинки. Мне в принципе ясен смысл, прикрепляет фаил, дает ему имя и ссылку типа <img src="cid: имя" /> вставляет в $body
но не могу сделать так чтобы две картинки всунуть. Помогите, кому не сложно. Или напишите как Вы оформляете письма. (прописывать путь до картинки с сайта http://sait.ru/img.gif не подходит)

<?php
$file_name="2.png";
$subj="Отправка изображения";
$bound="spravkaweb-1234";
$headers="From: \"vega\" <info@card.vl.ru> \n";
$headers.="To: zosya164@mail.ru \n";
$headers.="Subject: $subj \n";
$headers.="Mime-Version: 1.0 \n";
$headers.="Content-Type: multipart/alternative; boundary=\"$bound\" \n";
$body="--$bound \n";
$body.="Content-type: text/html; charset=\"windows-1251\" \n";
$body.="Content-Transfer-Encoding: 8bit \n\n";
$body.="<h3>Привет</h3>
Это проба отправки письма с прикрепленной картинкой.<BR>
А вот и сама картинка:<BR>
<img src=
\"cid:spravkaweb_img_1\">";
$body.="\n\n--$bound \n";
$body.="Content-Type: image/jpeg; name=\"".basename($file_name)."\" \n";
$body.="Content-Transfer-Encoding:base64 \n";
$body.="Content-ID: <spravkaweb_img_1> \n\n";
$f=fopen($file_name,"rb");
$body.=base64_encode(fread($f,filesize($file_name) ))." \n";
$body.="--$bound-- \n\n";
mail("webmaster@vega.pk.ru", $subj, $body, $headers);
?>




Спустя 4 часа, 21 минута, 52 секунды (16.08.2011 - 16:25) Mihalich41 написал(а):
народ, хоть скажите это же можно сделать то? при чем довольно легко?

Спустя 16 минут, 6 секунд (16.08.2011 - 16:42) alex12060 написал(а):
Не забывай про теги:
[php]text[/php]

Спустя 6 часов, 8 минут, 29 секунд (16.08.2011 - 22:50) Mihalich41 написал(а):
Проблему решил

повтором кода


$body.="\n\n--$bound \n"; 
$body.="Content-Type: image/jpeg; name=\"".basename($file_name)."\" \n";
$body.="Content-Transfer-Encoding:base64 \n";
$body.="Content-ID: <spravkaweb_img_1> \n\n";
$f=fopen($file_name,"rb");
$body.=base64_encode(fread($f,filesize($file_name) ))." \n";


строчка

$body.="--$bound-- \n\n"; 


меня и путала.


но письма только на mail.ru красиво приходят. вообщем сделал всё через Thunderbird от Mozila

Спустя 3 дня, 21 час, 31 минута, 5 секунд (20.08.2011 - 20:21) peter888 написал(а):
Mihalich41, у меня такая же проблема. Ты можешь полный код скинуть для двух картинок, а что-то у меня не получается, спасибо

Спустя 30 минут, 39 секунд (20.08.2011 - 20:52) peter888 написал(а):
Уже тоже додумался. Вот пример для трех картинок разного типа:
$file_name1="3.jpg";
$file_name2="2.jpg";
$file_name3="5.gif";
$from = 'MOJ@mail.ru'; // мой маил
$to = 'NEMOJ@gmail.com'; // кому
$subj="Отправка изображения";
$bound="spravkaweb-1234";
$headers="From: \"CompanyName\" <$from>\n";
$headers.="To: $to\n";
$headers.="Subject: $subj\n";
$headers.="Mime-Version: 1.0\n";

$headers.="Content-Type: multipart/alternative; boundary=\"$bound\"\n";

$body="--$bound\n";
$body.="Content-type: text/html; charset=\"windows-1251\"\n";
$body.="Content-Transfer-Encoding: 8bit\n\n";
$body.="<h3>Привет</h3>
Картинка 1:<BR>
<img src=
\"cid:spravkaweb_img_1\"><BR>
Картинка 2:<br><img src=
\"cid:spravkaweb_img_2\"><BR>
Картинка 3:<br><img src=
\"cid:spravkaweb_img_3\">";

$body.="\n\n--$bound\n";
$body.="Content-Type: application/octet-stream; name=\"".basename($file_name1)."\"\n";
$body.="Content-Transfer-Encoding:base64\n";
$body.="Content-ID: <spravkaweb_img_1>\n\n";
$f=fopen($file_name1,"rb");
$body.=base64_encode(fread($f,filesize($file_name1)))."\n";

$body.="\n\n--$bound\n";
$body.="Content-Type: application/octet-stream; name=\"".basename($file_name2)."\"\n";
$body.="Content-Transfer-Encoding:base64\n";
$body.="Content-ID: <spravkaweb_img_2>\n\n";
$f=fopen($file_name2,"rb");
$body.=base64_encode(fread($f,filesize($file_name2)))."\n";

$body.="\n\n--$bound\n";
$body.="Content-Type: application/octet-stream; name=\"".basename($file_name3)."\"\n";
$body.="Content-Transfer-Encoding:base64\n";
$body.="Content-ID: <spravkaweb_img_3>\n\n";
$f=fopen($file_name3,"rb");
$body.=base64_encode(fread($f,filesize($file_name3)))."\n";

$body.="--$bound--\n\n";

mail($to, $subj, $body, $headers);

Спустя 35 минут, 1 секунда (20.08.2011 - 21:27) inpost написал(а):
я отправляю письмо как HTML, а картинку храню на своём сервере, там просто <img src=""> - сколько хочешь smile.gif

Спустя 1 день, 1 час, 15 минут, 39 секунд (21.08.2011 - 22:42) peter888 написал(а):
Можешь код скинуть?

Спустя 5 минут, 43 секунды (21.08.2011 - 22:48) neadekvat написал(а):
Цитата (inpost @ 20.08.2011 - 22:27)
а картинку храню на своём сервере, там просто <img src=""> - сколько хочешь

А gmail, например, по умолчанию отключает все изображения в письме.

Спустя 23 минуты, 55 секунд (21.08.2011 - 23:12) inpost написал(а):
neadekvat
Отож. А если прикреплять - разве в таком случае он будет автоматически включен?

Спустя 4 минуты, 47 секунд (21.08.2011 - 23:17) neadekvat написал(а):
Цитата (inpost @ 22.08.2011 - 00:12)
А если прикреплять - разве в таком случае он будет автоматически включен?

Не знаю, не знаю, если честно. С рассылками стараюсь не связываться. А читая письма, как-то не особо заморачиваюсь о том, что же там с картинками.

Спустя 3 минуты, 21 секунда (21.08.2011 - 23:20) inpost написал(а):
neadekvat
Я только как раз сделал рассылку и там стояло "включить картинки" и вторая кнопка "автоматически включать картинки от этого автора". Думаю, если рассылка полезна будет, то получатель один раз нажмёт на вторую кнопку и проблем больше не будет.

Спустя 9 часов, 25 минут, 7 секунд (22.08.2011 - 08:45) peter888 написал(а):
Ребята, а чего, если отправлять письмо функцией mail(), то на *@mail.ru письма не доходят, и как сделать, чтоб дошли?

Спустя 1 час, 5 минут, 36 секунд (22.08.2011 - 09:51) neadekvat написал(а):
peter888
1. Создать новую тему, свою, нефиг в чужие лезть.
2. Показать код.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.