Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: HTML emails с внедренными картинками
 
 автор: Tyoma   (01.10.2006 в 02:54)   письмо автору
 
 

Нужно отправить HTML письмо с внедренными картинками. Есть код:

<?php
function XMail$from$to$subj$text$filename) {
    
$f         fopen($filename,"rb");
    
$un        strtoupper(uniqid(time()));
    
$head      "From: $from\n";
    
$head     .= "To: $to\n";
    
$head     .= "Subject: $subj\n";
    
$head     .= "X-Mailer: PHPMail Tool\n";
    
$head     .= "Reply-To: $from\n";
    
$head     .= "Mime-Version: 1.0\n";
    
$head     .= "Content-Type:multipart/mixed;";
    
$head     .= "boundary=\"----------".$un."\"\n\n";
    
$zag       "------------".$un."\nContent-Type:text/html;\n";
    
$zag      .= "Content-Transfer-Encoding: 8bit\n\n$text\n\n";
    
$zag      .= "------------".$un."\n";
    
$zag      .= "Content-Type: image/jpeg;";
    
$zag      .= "name=\"".basename($filename)."\"\n";
    
$zag      .= "Content-Transfer-Encoding:base64\n";
    
$zag      .= "Content-Disposition:inline;";
    
$zag      .= "Content-ID:MyImage;";
    
$zag      .= "filename=\"".basename($filename)."\"\n\n";
    
$zag      .= chunk_split(base64_encode(fread($f,filesize($filename))))."\n";

    return @
mail("$to""$subj"$zag$head);
}

XMail('email@mail.com''email2@mail.com''test''test with image  <img src="cid:MyImage">''test.jpg');
?>


Письмо приходит, вложение есть, но картинка не отображается.
Где я ошибся?

Кто что посоветует?

   
 
 автор: ec_stasis   (01.10.2006 в 03:27)   письмо автору
 
   для: Tyoma   (01.10.2006 в 02:54)
 

хз, попробуй скрипт http://www.softtime.ru/scripts/mailattach.php.
Работает, проверено!
Если не поможет, то может ты проверяешь почту в The Bat? У него есть такая проблема, что половину картинок почему-то не показывает...

   
 
 автор: targa   (01.10.2006 в 03:54)   письмо автору
 
   для: Tyoma   (01.10.2006 в 02:54)
 

Попробуйте так:

    $zag      .= "Content-Disposition: attachment;"; 
    $zag      .= "Content-ID: <MyImage>;";

И filename я не отправляю - картинка корректно отображается через cid.
Правда во всяких веб-мейлах ни картинок, ни оформления - не видно :(

   
 
 автор: Trianon   (01.10.2006 в 13:27)   письмо автору
 
   для: Tyoma   (01.10.2006 в 02:54)
 

Письмо с внедренными (а не прицепленными) картинками имеет тип multipart/related
Пример в RFC-2111
http://softtime.ru/forum/read.php?id_forum=1&id_theme=25330

   
 
 автор: targa   (01.10.2006 в 15:45)   письмо автору
 
   для: Trianon   (01.10.2006 в 13:27)
 

>Письмо с внедренными (а не прицепленными) картинками имеет тип multipart/related

Гм. А у меня основное тело имеет тип multipart/mixed и тем не менее картинки отображаются.

   
 
 автор: Tyoma   (01.10.2006 в 16:03)   письмо автору
 
   для: targa   (01.10.2006 в 15:45)
 

To targa:
А можешь скинуть свой работающий код?

   
 
 автор: Tyoma   (01.10.2006 в 20:25)   письмо автору
 
   для: Tyoma   (01.10.2006 в 02:54)
 

Теперь другая проблема. Все отсылается нормально (вложение и внедренная картинка). Бат принимает нормально, а вот Gmail - нет. Внедренная картинка отображается нормально, а вложение нет. Вот код:

<?php
function XMail$from$to$subj$text$filename) {
    
$f         fopen($filename,"rb");
    
$f1        fopen("test.txt","rb");
    
$un        strtoupper(uniqid(time()));
    
$head      "From: $from\n";
    
$head     .= "To: $to\n";
    
$head     .= "Subject: $subj\n";
    
$head     .= "X-Mailer: PHPMail Tool\n";
    
$head     .= "Reply-To: $from\n";
    
$head     .= "Mime-Version: 1.0\n";
    
$head     .= "Content-Type:multipart/mixed;";
    
$head     .= "boundary=\"----------".$un."\"\n\n";
    
$zag       "------------".$un."\nContent-Type:text/html;\n";
    
$zag      .= "Content-Transfer-Encoding: 8bit\n\n$text\n\n";
    
$zag      .= "------------".$un."\n";
    
$zag      .= "Content-Type: otcet/application\n";
    
$zag      .= "Content-Transfer-Encoding:base64;";
    
$zag      .= "name=\"".basename("test.txt")."\"\n";
    
$zag      .= "Content-Disposition:attachment;";
    
$zag      .= "filename=\"".basename("test.txt")."\"\n";
    
$zag      .= chunk_split(base64_encode(fread($f1,filesize("test.txt"))))."\n\n";
    
$zag      .= "------------".$un."\n";
    
$zag      .= "Content-ID: <MyImage>\n";
    
$zag      .= "Content-Type: image/jpeg\n";
    
$zag      .= "Content-Transfer-Encoding:base64\n";
    
$zag      .= "Content-Disposition:inline\n";
    
$zag      .= chunk_split(base64_encode(fread($f,filesize($filename))))."\n\n";
    
$zag      .= "------------".$un."--\n\n";


    return @
mail("$to""$subj"$zag$head);
}

XMail('email@mail.com''email2@mail.com''test''new test <img src="cid:MyImage"> <b>test</b>''test.jpg');
?>


Как сделать так, чтобы Gmail нормально принимал?

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования