Автор Тема: HTML - письмо с картинкой. Никак...  (Прочитано 11861 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Derbyt

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 20
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
HTML - письмо с картинкой. Никак...
« : 04 Февраля 2003, 11:14:33 »
Прочитал все темы на форуме, которые касаются использования функции mail(), перепробовал много способов. Но нужного резултьтата не достиг. Не могу разобраться. Долго крепился. ПОМОГИТЕ!!!
Проблема в следующем: формирую хтмл-письмо и с помощью mail() отсылаю, но необходимо, чтобы в теле письма у получателя отображалась картинка. Прочитал описание MIME, но ясности не прибавило.
Использую код, который RomikChef, привел в одном из советов:

function sendmsg($to$subject$text$from$file$type) {
$content fread(fopen($file,"r"),filesize($file));
$content chunk_split(base64_encode($content));
$uid strtoupper(md5(uniqid(time())));
$name basename($file);
$header "From: $from\\nReply-To: $from\\n";
$header .= "MIME-Version: 1.0\\n";
$header .= "Content-Type: multipart/mixed; boundary=$uid\\n";
$header .= "--$uid\\n";
$header .= "Content-Type: text/html\\n";
$header .= "Content-Transfer-Encoding: 8bit\\n\\n";
$header
	
.= 
"$text\\n";
$header
	
.= 
"--$uid\\n";
$header .= "Content-Type: $type; name=\\"$name\\"\\n";
$header .= "Content-Transfer-Encoding: base64\\n";
$header .= "Content-Disposition: attachment";
$header .= "$content\\n";
$header .= "--$uid--";
@
mail($to$subject""$header);
return 
true;
}


Вызов этой функции:

while ($rowmail mysql_fetch_array($allmailaddr)) 
{
$usermail $rowmail["usermail"];
$subject "Обзор последних новостей от ".date("d.m.Y")."";
$from "derbyt@mail.ru";
$file "http://site.ru/news/img/image.gif";
$type "image/gif";
sendmsg($usermail$subject$htmlmail$from$file$type);
}


В результате работы юзер все-таки получает письмо и даже файл рисунка в нем есть, но он в письме не отображается (в Бате показывает ошибку), а сам рисунок в Бате появляется еще одной вкладкой внизу письма. Размер файла рисунка 0, и соответственно ничего не отображается.
Пробовал использовать для этих целей Pear, но почта с сервера вообще не уходит (но сообщения об ошибках нет).
В рассылке, которая приходит в виде ХТМЛ с картинками, в коде ХТМЛ ссылки на картинки указаны типа:
<img src="cid:advert/mdigital/030124megafon.jpg">
Но что значит этот cid, нигде не нашел. Подскажите.

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
HTML - письмо с картинкой. Никак...
« Ответ #1 : 04 Февраля 2003, 13:34:53 »
А ты поищи по форуму по этому слову.
и будет тебе щасте

Оффлайн Derbyt

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 20
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
HTML - письмо с картинкой. Никак...
« Ответ #2 : 04 Февраля 2003, 13:44:11 »
RomikChef
Поиск ничего не дал, тем более я уже воспользовался таким же твоим советом, который ты давал ранее (ни на этом ни на других известных форумах я ничего не нашел).
Да и вообще хотелось бы знать, так ли мне поможет этот cid, может я вообще не в том направлении топчу. :-(((

Оффлайн AliMamed

  • \\o/ ali akbar \\o/
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2409
  • +2/-0
  • 2
    • Просмотр профиля
    • http://alimamed.pp.ru
HTML - письмо с картинкой. Никак...
« Ответ #3 : 04 Февраля 2003, 13:49:02 »
в хедер
Content-ID:advert/mdigital/030124megafon.jpg
ну, будем исповедоваться?

Оффлайн Derbyt

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 20
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
HTML - письмо с картинкой. Никак...
« Ответ #4 : 04 Февраля 2003, 14:03:43 »
AliMamed
1. А в тексте ХТМЛ\'а что писать в теге .
2. Что за путь идет после advert/ - относительный?
3. Если я так напишу картинку приаттачивать обычным образом (что-то навроде того, как я описал выше).

Оффлайн AliMamed

  • \\o/ ali akbar \\o/
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2409
  • +2/-0
  • 2
    • Просмотр профиля
    • http://alimamed.pp.ru
HTML - письмо с картинкой. Никак...
« Ответ #5 : 04 Февраля 2003, 14:25:37 »
1.тоже
2.безраницы это айди
3.таккак написано вверху. Content-ID соответственно там, где содержимое файла
ну, будем исповедоваться?

Оффлайн Derbyt

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 20
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
HTML - письмо с картинкой. Никак...
« Ответ #6 : 04 Февраля 2003, 15:07:15 »
Попробовал - не получилось.
Пишу:
1. В вызове процедуры

$usermail 
"test@test.ru";
$subject "Обзор последних новостей";
$from "admin@test.ru";
$file "http://test.ru/news/img/image01.gif";
$type "image/gif";
sendmsg($usermail$subject$htmlmail$from$file$type);

В самой процедуре дописал:

function sendmsg($to$subject$text$from$file$type) {
$content fread(fopen($file,"r"),filesize($file));
$content chunk_split(base64_encode($content));
$uid strtoupper(md5(uniqid(time())));
$name basename($file);
$header "From: $from\\nReply-To: $from\\n";
$header .= "MIME-Version: 1.0\\n";
$header .= "Content-Type: multipart/mixed; boundary=$uid\\n";
$header .= "--$uid\\n";
$header .= "Content-Type: text/html\\n";
$header .= "Content-Transfer-Encoding: 8bit\\n\\n";
$header.= "$text\\n";
$header .= "--$uid\\n";
$header .= "Content-Type: $type; name=\\"$name\\"\\n";
$header .= "Content-Transfer-Encoding: base64\\n";
$header .= "Content-Disposition: attachment";
$header .= "Content-ID:$file"//Вот здесь не знаю,то ли я пишу
$header .= "$content\\n";
$header .= "--$uid--";
@
mail($to$subject""$header);
return 
true;
}


В теле ХТМЛ письма:
<img src=\'cid:[url]http://test.ru/news/img/image01.gif[/url]\'>

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

Оффлайн Derbyt

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 20
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
HTML - письмо с картинкой. Никак...
« Ответ #7 : 04 Февраля 2003, 15:21:29 »
Последняя строка не верная (тело письма). На самом деле она выглядит так:
http://test.ru/news/img/rbtn1on.gif\'>
« Последнее редактирование: 04 Февраля 2003, 16:01:20 от Derbyt »

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
HTML - письмо с картинкой. Никак...
« Ответ #8 : 04 Февраля 2003, 15:40:11 »
Derbyt
если давать прямые ссылки в нет, то никакой cid не нужен.
просто пишешь адрес, и все.

На этом форуме, может быть, и нет.
Но на phpclub-e я сам лично увидел в первый раз код, который показывает картинки, приаттаченые к письму.
За тебя искать мне, извини - лень.

cid - это то, что тебе надо. AliMamed пишет какой-то бред.
контент ид пишется в соответствующем парте мультипарта, цид - в ссылке.
В общем, найди код - все станет ясно.

Оффлайн Derbyt

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 20
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
HTML - письмо с картинкой. Никак...
« Ответ #9 : 04 Февраля 2003, 16:13:20 »
RomikChef
Код-то я нашел (может правда не тот который видел ты), но не совсе догоняю что к чему.
Вот например:

1
)$message .= "<!DOCTYPE HTML PUBLIC \\"-//W3C//DTD HTML 4.0 Transitional// EN\\">\\n";
2)$message .= "<HTML><BODY>\\n";
3)$message .= "blah blah -- html version of the message\\n";
4)$message .= "<IMG src=3D\\"cid:some_picture\\">\\n";
5)$message .= "</BODY></HTML>\\n";
6)$message .= "\\n";

7)$message .= "------=MIME_BOUNDRY_main_message\\n";
8)$message .= "Content-Type: image/gif; \\n name=\\"some_picture.gif\\"\\n";
9)$message .= "Content-Transfer-Encoding: base64\\n";
10)$message .= "Content-ID: <some_picture>\\n";
11)$message .= "\\n";

Не ясно, что идет в cid в строке 4) и 10) (имя файла или путь).
Нужно ли втыкать где нибуд считывание и перекодировку файла рисунка (fread(fopen($file,"r"),filesize($file)) и base64_encode).

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
HTML - письмо с картинкой. Никак...
« Ответ #10 : 04 Февраля 2003, 17:33:35 »
Не понял?!
Ты собрался отправлять письмом картинку, но спрашиваешь меня - надо ли ее вкладывать в письмо??

(самым саркастическим тоном, какой у меня есть) НЕТ, НЕ НАДО!

Оффлайн Derbyt

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 20
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
HTML - письмо с картинкой. Никак...
« Ответ #11 : 04 Февраля 2003, 17:38:46 »
RomikChef
Самым дружелюбным и радостным тоном отвечаю СПАСИБО (хотя ничего еще не заработало).

Оффлайн AliMamed

  • \\o/ ali akbar \\o/
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2409
  • +2/-0
  • 2
    • Просмотр профиля
    • http://alimamed.pp.ru
HTML - письмо с картинкой. Никак...
« Ответ #12 : 04 Февраля 2003, 18:29:54 »
RomikChef сам ты бред
ну, будем исповедоваться?

Оффлайн Derbyt

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 20
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
HTML - письмо с картинкой. Никак...
« Ответ #13 : 04 Февраля 2003, 18:31:58 »
Нифига... Так я и не догнал с этими cid\'ами. Последняя надежа найти доку. Если кто может чем помочь, кинте ссылочку. Пойду за мыльцем и веревочкой, может поможет а?

Оффлайн AliMamed

  • \\o/ ali akbar \\o/
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2409
  • +2/-0
  • 2
    • Просмотр профиля
    • http://alimamed.pp.ru
ну, будем исповедоваться?

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28