Письма в формате HTML и вложенные картинки

untied

Сдвинутый новичок
Письма в формате HTML и вложенные картинки

Приветствую.

Возник такой вопрос: при отправке письма в формате HTML заказчик хочет включить в текст свой логотип.
Самое простое -- сделать обычную ссылку <img src=..., а сам логотип разместить на сайте.
Однако некоторые почтовые клиенты (напр. Exchange) блокируют такое содержание и картинку по умолчанию не показывают.
Знаю, что есть возможность включать картинки в письмо аттачментом, и из HTML-текста как-то на них ссылаться (тогда Exchange такую картинку показывает сразу).
Кто-нибудь может посвятить в подробности?

PS. Это не для спама. Просто заказчику хочется, чтобы при регистрации на сайте клиенту присылалось красиво оформленное письмо-подтверждение. :)
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
http://phpclub.ru/detail/article/mail

Просто заказчику хочется, чтобы при регистрации на сайте клиенту присылалось красиво оформленное письмо-подтверждение.
Клинту красиво оформленное письмо _подтверждения_регистрации_ нафик не нужно.
 

untied

Сдвинутый новичок
Автор оригинала: Mr_Max
http://phpclub.ru/detail/article/mail


Клинту красиво оформленное письмо _подтверждения_регистрации_ нафик не нужно.
Спасибо за статью.

PS. То, что нужно/не нужно клиенту, меня не колышет. Хочет заказчик -- ну и пусть получает. :)
 

$lider

Бывает
Код:
PHP:
function XMail( $from, $to, $subj, $text, $filename, $mime) { 
    $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: ".$mime.";\n";
    $zag      .= "Content-ID: logotype;\n";
    $zag      .= "Content-Transfer-Encoding:base64\n"; 
    $zag      .= "Content-Disposition:attachment;"; 
    $zag      .= "filename=\"".basename($filename)."\"\n\n"; 
    $zag      .= chunk_split(base64_encode(fread($f,filesize($filename))))."\n"; 
    return @mail("$to", "$subj", $zag, $head); 
}
XMail("[email protected]", "[email protected]", "Проба", "<IMG SRC='cid:logotype'>", "pic.jpg", "image/jpeg")
В почтовом клиенте (TheBat!) изображение вижу сразу в теле письма.
А вот через web (mail.ru) - картинка битая :(
Нутром чую что пропустил толь заголовок, толь точку с зяпятой :(
Ткните носом...


p.s. не стал создавать новую тему...

-~{}~ 30.04.09 16:27:

Решилось.
Взял класс PHPMailer
http://sourceforge.net/project/showfiles.php?group_id=26031

Там все наглядно на примерах.
 

Alexandre

PHPПенсионер
Просто заказчику хочется, чтобы при регистрации на сайте клиенту присылалось красиво оформленное письмо-подтверждение
объясни заказчику, что письма пришедшие в ввиде HTML имеют на один штрафной бал больше, чем в текстовом варианте, соответственно у них больше вероятности утонуть в море спама и быть отфильтрованными антиспамовскими системами.

-~{}~ 01.05.09 01:18:

Решилось.
Взял класс PHPMailer
http://sourceforge.net/project/show...?group_id=26031
давно пора использовать проверенные и отработанные решения а не изобретать велосипеды
 
Сверху