Что такое хороший интерфейс Perl OO для создания и отправки электронного письма?

Я ищу простое (OO?) приближаются к почтовому созданию и отправке.

Что-то как

$e = Email->new(to => "test <test@test.com>", from => "from <from@from.com>");
$e->plain_text($plain_version);
$e->html($html_version);
$e->attach_file($some_file_object);

Я нашел электронную почту:: MIME:: CreateHTML, который выглядит большим почти каждым способом, за исключением того, что это не кажется вложениям файла поддержки.

Кроме того, я полагаю, что писание этих электронных писем к базе данных и наличию cronjob отправляет их позднее. Это означает, что мне был бы нужен a $e->as_text() sub для возврата всей электронной почты, включая вложения, как необработанный текст, который я мог наполнить в дб. И таким образом, мне затем был бы нужен способ послать необработанные электронные письма - каков будет хороший способ достигнуть этого?

Большое спасибо

5
задан brian d foy 9 May 2010 в 00:30
поделиться

3 ответа

Вам нужно внимательнее читать документацию, тогда два из трех ваших вопросов будут спорными.

Из описания Email::MIME::CreateHTML:

my $email = Email::MIME->create_html(

Вы, очевидно, получаете объект Email::MIME. См. методы parts_set и parts_set для так называемых вложений.

Email::MIME является подклассом Email::Simple. См. метод as_string для сериализации объекта в текст.

См. Email::Sender для отправки почты.

4
ответ дан 14 December 2019 в 08:45
поделиться

Вы можете проверить perl MIME :: Lite .

Вы можете получить сообщение в виде строки для сохранения в базе данных:

### Get entire message as a string:
$str = $msg->as_string;
2
ответ дан 14 December 2019 в 08:45
поделиться

Email :: Stuff - хорошая оболочка для Email :: MIME. Вам не нужно заботиться о MIME-структуре письма, модуль сделает это за вас.

Email::Stuff->from     ('cpan@ali.as'                      )
            ->to       ('santa@northpole.org'              )
            ->bcc      ('bunbun@sluggy.com'                )
            ->text_body($body                              )
            ->attach   (io('dead_bunbun_faked.gif')->all,
                        filename => 'dead_bunbun_proof.gif')
            ->send;

Также есть as_string.

1
ответ дан 14 December 2019 в 08:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: