Forum Webscript.Ru

Программирование => PHP => Тема начата: Sniper от 13 Февраля 2005, 20:21:53

Название: Письмо HTML и картинка внутри. Не пинайте ногами.
Отправлено: Sniper от 13 Февраля 2005, 20:21:53
Значит так. Делаю рассылку. Уже давно делаю. )
Никак не разберусь со вложением картинки.
Пробовал вариант 1

$file = "1.gif";
  $content = fread(fopen($file,"r"),filesize($file));
  $content = chunk_split(base64_encode($content));
  $uid = strtoupper(md5(uniqid(time())));
  $name = basename($file);

  $header = "From: Ðîìêà\\nReply-To: Ðîìêà\\n";
  $header .= "MIME-Version: 1.0\\n";
  $header .= "Content-Type: multipart/alternative;
  boundary=$uid\\n";

$header .= "--$uid\\n";
$header .= "Content-Type: text/html\\n";
$header .= "Content-Transfer-Encoding: 7bit\\n";
$filename = "form_unsubscribe.html";
$fd = fopen ($filename, "r");
$file_text = fread ($fd, filesize ($filename));

$header .= "--$uid\\n";
  $header .= "Content-Type: image/gif; name=\\"$name\\"\\n";
  $header .= "Content-Transfer-Encoding: base64\\n";
  $header .= "Content-Disposition: attachment; $filename=\\"$name\\"\\n\\n";
  $header .= "$content\\n";
  $header .= "--$uid--";
 
  mail("to@mail.ru", "Òåìà ïèñüìà", $file_text, $header);
 

Я так понял, что я не разобрался с boundary
Читал я доку про стандарт mime
И пробовал вариант 2,

$file = "1.gif";
  $content = fread(fopen($file,"r"),filesize($file));
  $content = chunk_split(base64_encode($content));
  $uid = strtoupper(md5(uniqid(time())));
  $uid_2 = strtoupper(md5(uniqid(time())));

  $name = basename($file);

  $header = "From: Ромка\\nReply-To: Ромка\\n";
  $header .= "MIME-Version: 1.0\\n";
  $header .= "Content-Type: multipart/alternative;
  boundary=$uid\\n";

$header .= "--$uid\\n";
$header .= "Content-Type: text/html\\n";
$header .= "Content-Transfer-Encoding: 7bit\\n";
$filename = "form_unsubscribe.html";
$fd = fopen ($filename, "r");
$file_text = fread ($fd, filesize ($filename));

$header .= "--$uid_2\\n";
  $header .= "Content-Type: image/gif; name=\\"$name\\"\\n";
  $header .= "Content-Transfer-Encoding: base64\\n";
  $header .= "Content-Disposition: attachment; $filename=\\"$name\\"\\n\\n";
  $header .= "$content\\n";
                $header .= "--$uid_2--\\n";
  $header .= "--$uid--";
 
  mail("to@mail.ru", "Тема письма", $file_text, $header);
 

мучаюсь весь день.
Только пожалуйста, не надо ссылок на доки или в поиск.
Это все я уже пробовал. Лучше подскажите что в МОЕМ коде не так.
Название: Письмо HTML и картинка внутри. Не пинайте ногами.
Отправлено: Sniper от 23 Февраля 2005, 11:50:54
И вот так я уже пробовал:

$content = fread(fopen("./4.gif","r"),filesize("./4.gif"));
$content = chunk_split(base64_encode($content));
$uid = strtoupper(md5(uniqid(time())));

$content_2 = fread(fopen("./1.gif","r"),filesize("./1.gif"));
$content_2 = chunk_split(base64_encode($content_2));
$name_2 = basename("./1.gif");

$text = "Текстьолвое письмо";
$name = basename("./4.gif");
$name_2 = basename("./1.gif");
$header = "From: Romka\\nReply-To: Romka\\n";
$header .= "MIME-Version: 1.0\\n";
$header .= "Content-Type: multipart/related; 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: image/gif; name=\\"$name\\"\\n";
$header .= "Content-Transfer-Encoding: base64\\n";
$header .= "Content-Location: ./4.gif";
$header .= "$content\\n";
$header .= "--$uid\\n";

$header .= "Content-Type: image/gif; name=\\"$name_2\\"\\n";
$header .= "Content-Transfer-Encoding: base64\\n";
$header .= "Content-Location: ./1.gif";
$header .= "$content_2\\n";

mail("to@me.ru","Тема письма", "", $header);

письмо приходит.
Картинки прикреплены, только они не открываются.
И размер у них такой как надо, но не откурываются. ((
Название: Письмо HTML и картинка внутри. Не пинайте ногами.
Отправлено: Макс от 23 Февраля 2005, 14:10:00
покажи свой тег
Название: Письмо HTML и картинка внутри. Не пинайте ногами.
Отправлено: Sniper от 23 Февраля 2005, 14:35:31
Макс
Они приходят как вложение но не открываются.
Название: Письмо HTML и картинка внутри. Не пинайте ногами.
Отправлено: Макс от 23 Февраля 2005, 14:49:02
Sniper
они должны показываться в самом ХТМЛ-документе или отдельно ?

ты смотрел исходник письма, который получаешь ?
Эти строки никаких сомнений не вызывают :
Цитировать
$header .= "Content-Location: ./1.gif";
$header .= "$content_2\\n";
.... и ......
$header .= "Content-Location: ./4.gif";
$header .= "$content\\n";
?