Опубликовано

Отправка писем с приложенными файлами из perl скриптов

Мне по работе понадобилось написать скрипт который бы отравлял письма с приложенными файлами. Скрипт, конечно, я писал на perl, а в нем для этих целей есть замечательный модуль MIME:Lite. Ниже приведены исходные данные и быстро-заметка как я это делал.

Исходные данные:

Система: Solaris (uname -a SunOS XXXX 5.10 Generic_137137-09 sun4u sparc SUNW,Sun-Fire-880)

Perl:  perl, v5.8.4 built for sun4-solaris-64int

Доступа с хоста в интернет — нет.

Установка модулей для возможности отправки писем с приложенными файлами:

Для отправки можно использовать простой модуль: MIME::Lite
Скачал MIME-Lite-3.028.tar.gz и попробовал поставить — требует
Модуль   Email-Date-Format
скачал модули Email-Date-Format-1.002.tar.gz
Email-Date-Format-1.002.tar.gz поставился без проблем
MIME-Lite-3.028.tar.gz выдал ненайденые зависимости.
Вот сообщение:
# perl Makefile.PL
MIME::Lite is designed to take advantage of a variety of external modules
if they are not present then MIME::Lite will attempt to do its best
but its strongly recommend that you install them.
These modules are:
MIME::Types
Mail::Address
I can add these modules to the prereq list which will cause the files to be
automatically installed if they aren’t already present
MIME::Types содержится в пакете MIME-Types-1.34.tar.gz. Скачал и поставил без проблем.
Mail::Address  содержится в MailTools-2.08. Скачал MailTools-2.08.tar.gz но он затребовал зависимости:
Warning: prerequisite Date::Format 0 not found.
Warning: prerequisite Date::Parse 0 not found.
Warning: prerequisite Test::Pod 1 not found.
Date::Format и Date::Parse входит в пакет TimeDate, поэтому я скачал TimeDate-1.20.tar.gz и поставил его.
Test::Pod  служит для проверки POD-документации и нам он не нужен, поэтому я не стал с ним разбираться (все
работает без него)
После установки TimeDate-1.20.tar.gz  успешно поставился и MailTools-2.08
После MailTools-2.08 удачно поставился MIME-Lite
Скрипт для отправки работает:
#!/usr/bin/perl
use MIME::Lite;
use MIME::Lite;
my $msg = MIME::Lite->new(
From    => ‘test@mail.ru’,
To      => ‘tttt@mail.ru’,
Subject => ‘A message with 2 parts…’,
Type    => ‘multipart/mixed’,
);
$msg->attach(
Type     => ‘TEXT’,
Data     => «Here’s the GIF file you wanted»,
);
$msg->attach(
Type     => ‘image/gif’,
Path     => ‘/tmp/example1.gif’,
Filename => ‘example1.gif’,
);
$msg->attach(
Type     => ‘image/gif’,
Path     => ‘/tmp/example2.gif’,
Filename => ‘example2.gif’,
);
$msg->send(‘smtp’,’MAILHOST’, Debug=>1 );

Все вроде бы просто. Хорошо.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

CAPTCHA image