2006/11/08

Отправка HTML-форматированного письма (с картинками)

Очень удобно сгенерированные HTML-отчеты (с картинками) читать из почтового клиента, но как оказалось, не так-то просто это сделать - одной командой тут не обойтись. На помощь приходит perl реализация - пакет MIME-Lite-HTML (документация). Не беда, если в системе пакетов (например Debian) не существует такого пакета - достаточно взять tar.gz-архив с сайта разработчиков, распаковать его и поместить файл HTML.pm в директорию с остальными perl-библиотеками (для Debian директория будет /usr/share/perl5/MIME/Lite).

Зависимости для MIME::Lite::HTML :
  • MIME::Lite
  • LWP::UserAgent
  • HTML::LinkExtor
  • URI::URL
Для устранения зависимостей в Debian необходимо установить пакеты libmime-lite-perl, libwww-perl и все их зависимости.

Как это работает:
1. Программа-анализатор генерирует html-отчет с картинками в локальную (закрытую) директорию на сервере (например /var/stats).
2. Приведенный ниже perl-скрипт генерирует на основе созданного htlm-отчета html-форматированное письмо, с сохранением всего содержимого (картинки), и отсылает готовое письмо по указанному адресу.

Пример perl-скрипта:
#!/usr/bin/perl -w
use MIME::Lite::HTML;
my $mailHTML = new MIME::Lite::HTML (
From => 'Charlie Root',
To => 'myemail@home.net',
IncludeType => 'cid',
Subject => 'Daily activity report',
);
$MIMEmail = $mailHTML->parse('file:///var/stats/index.htm');
$MIMEmail->send;


No comments: