Zend Mail как вложить изображение в письмо
Есть два варианта добавить картинку в почтовое html сообщение.
1. Использовать удаленный сервер для загрузки сообщения.
2. Вложить сообщение в письмо и ссылаться на него в html документе.
Первый способ очень простой и не требует программирования:
PHP:
-
<img src="http://somededicateserver.com/images/logo.gif" />
Второй способ сложнее и для его реализации нам необходимо сначала добавить изображение в сообщение, а потом в сообщении сделать ссылку на это изображение.
Пример, добавляем изображение в вложения письма:
PHP:
-
$html = $this->_request->getParam('html','');//в html у нас храниться исходный HTML код сообщения
-
$mail = new Zend_Mail('UTF-8');
-
//убедитесь, что файл существует и доступен для чтения
-
$filename = '/path/htdocs/img/logo.gif';
-
$mail->setType(Zend_Mime::MULTIPART_RELATED);
-
$at->type = 'image/gif';
-
$at->disposition = Zend_Mime::DISPOSITION_INLINE;
-
$at->encoding = Zend_Mime::ENCODING_BASE64;
-
}
-
$mail->setBodyHtml($html, 'UTF-8', Zend_Mime::ENCODING_8BIT);
Внутри html сообщения у нас есть специальная строка (file://attached_image), ссылка на изображение:
PHP:
-
<img src="file://attached_image" />
которая, после обработки, будет заменена на вложенное в письмо изображение, и будет иметь следующий вид:
PHP:
-
<img src="cid:cid_4b3fdb60e9422ce97926cc8d3b601188" />
Все, отправляем письмо и проверяем результат.
