我应该使用CPAN的哪个包发送邮件?

时间:2010-05-27 08:20:30

标签: perl module cpan

我应该使用CPAN中的哪个包发送邮件

有时候,timtowtdi方法非常累人。对我来说,特别是在包装选择方面。

所以我想要的是发送电子邮件,可能是HTML电子邮件。在Mail-Sendmail,Mail-Sender,NET-SMTP(顺便说一下 - 在PPM中不可用),Mail-SendEasy和80个左右的其他软件包中,它们的软件包名称中包含“Mail” - 我应该选择哪一个?

在这个主题中,你选择“规范”包慢跑的一般方法是什么?即“每个人都在使用”的包裹。某处是否有任何评级或受欢迎的广告牌?

6 个答案:

答案 0 :(得分:15)

  

为慢跑选择“规范”套餐的一般评价是什么?即“每个人都在使用”的包裹。某处是否有任何评级或受欢迎的广告牌?

当我想选择使用几个CPAN模块中的哪一个时,我看到的是

文档:

CPAN模块的试金石是文档的第一页。如果有一个混乱的概要,或没有一个简单的工作示例的概要,我想这个模块可能不是一个好的。不整洁,杂乱或错误格式化的文档也是一个危险信号。

修复状况:

  • 模块的最后一个版本的发布日期告诉您它是否正在维护,
  • CPAN tester's reports告诉您模块是否可能无需安装即可安装
  • rt.cpan.org上的错误列表让您了解作者对维护模块的积极态度。

此外,该模块是否有邮件列表?拥有邮件列表是一个质量好,维护,稳定,文档化和流行模块的一个很好的标志。

作者:

  • 模块作者的名称是什么?
  • 作者发布了多少个其他模块?
  • 作者发布了哪些模块?

作者是一个重要因素。有一些作者创造了具有优良品质的作品,如Gisle Aas,Graham Barr,Andy Wardley或Jan DuBois,还有一些人发现了很多可以被描述为“实验性”的东西,比如Damian Conway或Tatsuhiko宫川。警惕那些发布了很多Acme ::(笑话)模块的人。另外,要注意那些只维护一个或两个模块的人所写的东西。总共少于五个模块的人通常不会维护它们。

其他事项:

cpanratings.perl.org通常会有所帮助,但要带上一粒盐。

除此之外,其中很多只是反复试验。下载并查看它是否通过自己的测试,看看它是否有任何测试,编写测试脚本等等。

通常没有给出有意义排名的事情:

  • Google 的最高结果往往是古老的Perlmonks或perl.com或Dobbs博士的期刊文章,这些往往会指向过时的事物。
  • search.cpan.org 的搜索功能将第10页上未更新的模块放在第一页上,将最新最好的模块放在第10页上。

小心“炒作”:

我想说的另一件事是:对博客,stackoverflow,Usenet新闻等方面的建议保持警惕 - 人们倾向于引导你进入本月风格的任何模块,而不是一个稳定的,经过验证的解决方案。 “时尚”模块通常缺乏文档,不稳定,有噩梦依赖,并且很多时候,昨天的时尚模块突然失宠而被抛弃,被本月的另一种风味取代,如果你决定让你陷入困境使用它们。

答案 1 :(得分:9)

Task::Kensho通常会提出好的建议。要发送电子邮件,建议Email::Sender

答案 2 :(得分:3)

我会投入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;

至于选择模块,

答案 3 :(得分:0)

如果您不需要超过基本功能,我建议您查看Mime::Lite

use MIME::Lite; 
my $msg = new MIME::Lite
From => 'Your friendly neighbourhood spiderman',
To => 'green@goblin.net', 
CC => 'info@nemesis.org',
BCC => 'mj@spidey.info',
'Reply-to' => 'enemies@spidey.info',
Subject => 'Please stop',
Data     => $data; #Email body

die 'Could not send mail' unless ($msg->send);

答案 4 :(得分:0)

答案 5 :(得分:0)

我更喜欢的是

Mail::Sendmail

MIME::Lite

如果您需要SSL,请添加

Net::SMTP::SSL