什么是用于创建和发送电子邮件的良好Perl OO界面?

时间:2010-05-05 16:36:37

标签: perl email cpan

我正在寻找一种简单的(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);

我发现Email :: MIME :: CreateHTML几乎在所有方面看起来都很棒,但它似乎不支持文件附件。

另外,我正在考虑将这些电子邮件写入数据库并让cronjob在以后发送它们。这意味着我需要一个$e->as_text() sub来将整个电子邮件(包括附件)作为原始文本返回到db中。因此,我需要一种发送原始电子邮件的方式 - 实现这一目标的好方法是什么?

非常感谢

3 个答案:

答案 0 :(得分:4)

你必须更仔细地阅读文档,然后你的三个问题中的两个都没有实际意义。

Email::MIME::CreateHTML

的概要
my $email = Email::MIME->create_html(

你显然得到一个Email::MIME对象。有关所谓的附件,请参阅方法parts_setparts_set

Email::MIMEEmail::Simple的子类。请参阅方法as_string以将对象序列化为文本。

请参阅Email::Sender发送邮件。

答案 1 :(得分:2)

您可以查看perl MIME::Lite

您可以将消息作为字符串保存到数据库中:

### Get entire message as a string:
$str = $msg->as_string;

答案 2 :(得分:1)

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。