|
|
|
| Нужно отправить 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');
?>
|
Письмо приходит, вложение есть, но картинка не отображается.
Где я ошибся?
Кто что посоветует? | |
|
|
|
|
|
|
|
для: Tyoma
(01.10.2006 в 02:54)
| | хз, попробуй скрипт http://www.softtime.ru/scripts/mailattach.php.
Работает, проверено!
Если не поможет, то может ты проверяешь почту в The Bat? У него есть такая проблема, что половину картинок почему-то не показывает... | |
|
|
|
|
|
|
|
для: Tyoma
(01.10.2006 в 02:54)
| | Попробуйте так:
$zag .= "Content-Disposition: attachment;";
$zag .= "Content-ID: <MyImage>;";
|
И filename я не отправляю - картинка корректно отображается через cid.
Правда во всяких веб-мейлах ни картинок, ни оформления - не видно :( | |
|
|
|
|
|
|
|
для: Tyoma
(01.10.2006 в 02:54)
| | Письмо с внедренными (а не прицепленными) картинками имеет тип multipart/related
Пример в RFC-2111
http://softtime.ru/forum/read.php?id_forum=1&id_theme=25330 | |
|
|
|
|
|
|
|
для: Trianon
(01.10.2006 в 13:27)
| | >Письмо с внедренными (а не прицепленными) картинками имеет тип multipart/related
Гм. А у меня основное тело имеет тип multipart/mixed и тем не менее картинки отображаются. | |
|
|
|
|
|
|
|
для: targa
(01.10.2006 в 15:45)
| | To targa:
А можешь скинуть свой работающий код? | |
|
|
|
|
|
|
|
для: 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 нормально принимал? | |
|
|
|