URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 80320
[ Назад ]

Исходное сообщение
"Net::SMTP"

Отправлено lioncub , 16-Май-08 15:47 
Как с помощью модуля Net::SMTP отправить письмо с вложением? Вложение 2 файла: 1.txt, 2.html, оба находятся в тойже дирректории что и скрипт.

Содержание

Сообщения в этом обсуждении
"Net::SMTP"
Отправлено Wolong , 16-Май-08 18:11 
>Как с помощью модуля Net::SMTP отправить письмо с вложением? Вложение 2 файла:
>1.txt, 2.html, оба находятся в тойже дирректории что и скрипт.

use Net::SMTP;
use MIME::Lite;

my $mime_msg = MIME::Lite->new(
  From => "support@microsoft.com",
  To   => "email@address.com",
  Subject => "subj",
  Type => "TEXT",
  Data => "сообщение"
) or die "Error creating MIME body: $!n";

$mime_msg->attach(
  Type => 'text/plain',
  Path => '1.txt',
) or die "Error attaching test file: $!n";

$mime_msg->attach(
  Type => 'text/html',
  Path => '1.html',
) or die "Error attaching test file: $!n";

my $message_body = $mime_msg->body_as_string();
$smtp = Net::SMTP->new("smtp@server.com");
       die " couldn't connect to server" unless $smtp;

$smtp->mail("support@microsoft.com");
$smtp->to("email@address.com");
$smtp->data();
$smtp->datasend($message_body);
$smtp->dataend();

примерно так


"Net::SMTP"
Отправлено lioncub , 16-Май-08 18:45 
Спасибо, но MIME::Lite не могу использовать...

"Net::SMTP"
Отправлено angra , 17-Май-08 04:53 
Религиозные причины?

"Net::SMTP"
Отправлено lioncub , 17-Май-08 13:24 
>Религиозные причины?

Да, можно сказать так или почти....
На данный момент реализовал отправку через sendmail....
Интересно как через стандартный модуль отправлять, система старая, работает, новые модули не ставятся.... Обнавлять что-либо не хочется, да и много чего там завязано, опасно.... Позже сделаю не заметный мягкий переход на новое железо и соответственно систему....


"Net::SMTP"
Отправлено PavelR , 17-Май-08 19:06 
>>Религиозные причины?
>
>Да, можно сказать так или почти....
>На данный момент реализовал отправку через sendmail....
>Интересно как через стандартный модуль отправлять, система старая, работает, новые модули не
>ставятся.... Обнавлять что-либо не хочется, да и много чего там завязано,
>опасно.... Позже сделаю не заметный мягкий переход на новое железо и
>соответственно систему....

ну и положи Мime/Lite.pm в директорию со скриптом, и будет на ура работать и без влияния на стандартную систему.


"Net::SMTP"
Отправлено lioncub , 17-Май-08 21:41 
>ну и положи Мime/Lite.pm в директорию со скриптом, и будет на ура
>работать и без влияния на стандартную систему.

а поподрбнее можно... mime::lite по идее тянет много модулей...


"Net::SMTP"
Отправлено angra , 19-Май-08 03:05 
Тогда вам стоит разобраться с cpan, особенное внимание обратить на:
Typical frequently used settings:

    --install_base /home/xxx             # different installation directory
Можно его даже в одной сессии поменять, в результате получите дерево, которое нужно положить рядом со скриптом в вашей системе.
Осталось правда узнать что такого требует MIME::Lite, если учесть следущее
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:
        Mail::Address
        MIME::Types
        File::Basename
        MIME::Base64
        MIME::QuotedPrint
То бишь рекомендуется, но не обязательно


"Net::SMTP"
Отправлено lioncub , 19-Май-08 07:30 
Разобрался, немного, для передачи двоичных форматов надо использовать.... MIME::Base64