пʼятниця, 24 вересня 2010 р.

PHP отправка письма с картинками

Отправка письма с вложением и отправка HTML-письма с вложением существенно отличаются по своей природе. Конечно же, и те и те находятся в теле письма, закодированы в base64, но используемые в обоих случаях заголовки различаются. В данном статье описывается, как отправить HTML-файл с внедренными (в отличие от прикрепленных) изображениями, используя класс Mime_mail. Подразумевается, что предыдущую статью Вы уже прочитали.

<?php 
include('Mail.php'); 
include('Mail/mime.php'); 

$text = 'Text version of email'; 
$html = 'HTML version of email'; 
$file = '/tmp/image.jpg'; 
$crlf = "\r\n"; 
$hdrs = array( 
              'From'    => 'you@yourdomain.com', 
              'Subject' => 'Test mime message' 
              ); 

$mime = new Mail_mime($crlf); 

$mime->setTXTBody($text); 
$mime->addHTMLImage ($file, 'image/jpeg'); 
$mime->setHTMLBody($html); 

$body = $mime->get(); 
$hdrs = $mime->headers($hdrs); 


$mail =& Mail::factory('mail'); 
$mail->send('postmaster@localhost', $hdrs, $body); 
?> 

Отличие этого примера от приведенного в предыдущей статье - использование функции addHTMLImage. Она принимает следующие параметры:

  • string $data

    полный путь к прикрепляемому изображению на сервере либо его содержимое. Обязательный параметр.

  • string $c_type

    значение заголовка Сontent-type, который будет отправлен. Необязательный параметр, значение по умолчанию: application/octet-stream.

  • string $name

    имя прикрепляемого изображения. Будет использовано только в случае, если первый параметр ($data) является содержимым файла.

  • boolean $isfile

    определяет, является ли первый параметр путем к изображению. Необязательный параметр, значение по умолчанию: true.

Аналогично методу addAttachment существует два способа вызова этого метода: в качестве первого параметра можно указывать путь к изображению либо двоичные данные изображения. Во втором случае третий и четвертый параметры являются обязательными.

Особенность этого метода заключается в том, что каждому изображению при помощи заголовка Content-ID: <8820c4185> ставиться в соответствие уникальный ключ. После этого все ссылки на прикрепляемое изображение заменяются ссылками на его ключ. В результате, в пришедшем к получателю письме будет строка вида <IMG src="/cid: 8820c4185">, которую почтовый клиент проанализирует, извлечет содержимое из соответствующей секции письма и "покажет картинку".

Немає коментарів:

Дописати коментар

HyperComments for Blogger

comments powered by HyperComments