Функция Mail(). Вставляем в письмо картинку
Автор статьи: spravkaweb.ru ©
Сайт Автора: spravkaweb.ru
E-mail Автора: admin@spravkaweb.ru
Дата публикации: 5.08.2005
Допустим, у нас задача - вставить в письмо, отправляемое с сайта пользователю,
свой баннер (кнопку). Content-ID: <идентификатор>где идентификатор является строкой, которая будет уникальной для данного письма (по примеру параметра boundary заголовка Content-Type). Теперь в самом письме можно в адресе картинки подставлять ее идентификатор. <IMG src="cid:идентификатор">Почтовая программа проанализирует его, извлечет из соответствующей секции картинку и покажет ее. Вот как может выглядеть письмо: Date: Sat, 13 Mar 2004 09:56:31 -0300 Subject: Отправка изображения From: "Evgen" <admin@spravkaweb.ru> To: admin@localhost.ru Subject: Отправка изображения Mime-Version: 1.0 Content-Type: multipart/alternative; boundary="spravkaweb-1234" --spravkaweb-1234 Content-type: text/html; charset="windows-1251" Content-Transfer-Encoding: 8bit <h3>Привет</h3> Это проба отправки письма с прикрепленной картинкой.<BR> А вот и сама картинка:<BR> <img src="cid:spravkaweb_img_1"> --spravkaweb-1234 Content-Type: image/jpeg; name="5.jpg" Content-Transfer-Encoding:base64 Content-ID: <spravkaweb_img_1> /9j/4AAQSkZJRgABAQAAAQABAAD/2wBD .... --spravkaweb-1234--Как и в случае с прикрепляемыми файлами, если нам заранее неизвестно, какой тип картинки будет прикреплен, заголовку Content-Type можно присвоить значение application/octet-stream. Для закрепления этой темы напишем программу, которая отправляет письмо с картинкой: <?php
/*
Зададим в переменной $file_name путь до вставляемой картинки.
В нашем случае она находится в том же каталоге, что и
файл отправки письма. Но вместо этого сюда можно подставить
файл, полученный сценарием из <INPUT type=file name=file_name>.
*/
$file_name="5.jpg";
$subj="Отправка изображения";
$bound="spravkaweb-1234";
$headers="From: \"Evgen\" <admin@spravkaweb.ru>\n";
$headers.="To: admin@localhost.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("admin@localhost.ru", $subj, $body, $headers);
?>
Хочу отметить, что аналогичным образом в письмо можно вставлять не только
картинки, но, например, flash-ролики, звук, и другие элементы, которые должны
подгружаться к странице из файлов. |
|
"Функция Mail(). Вставляем в письмо картинку" Copyright © "В помощь Веб-Мастеру" (Alexander D. Belyaev) 2005-2007. Перепечатка материалов разрешается, только после письменного разрешения автора (e-mail). При перепечатке любого материала видимая ссылка на источник "В помощь Веб-Мастеру" и все имена, ссылки авторов обязательны. |
|
|