我正在寻找一种简单的(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中。因此,我需要一种发送原始电子邮件的方式 - 实现这一目标的好方法是什么?
非常感谢
答案 0 :(得分:4)
你必须更仔细地阅读文档,然后你的三个问题中的两个都没有实际意义。
从Email::MIME::CreateHTML
:
my $email = Email::MIME->create_html(
你显然得到一个Email::MIME
对象。有关所谓的附件,请参阅方法parts_set和parts_set。
Email::MIME
是Email::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。