我如何在Windows上安装Email :: Sender?

我在Windows上使用Perl。 我将尝试使用Email :: Sender模块发送邮件。 但是我无法安装Email :: Sender的模块。

假设您的意思是CPAN模块Email::Sender (Perl区分大小写),而不是其他一些不在CPAN中的模块,那么您可以使用Perl发行版附带的软件包安装程序。

在大多数情况下,这将是:

 cpan Email::Sender 

从CPAN主页的“入门”部分链接了更多详细信息和方法 。

我用cpan Email::Sender命令,然后输出如下:

 CPAN: Storable loaded ok Going to read /home/user name/.cpan/Metadata Database was generated on Wed, 04 Apr 2012 09:59:04 GMT Running install for module Email::Sender Running make for R/RJ/RJBS/Email-Sender-0.110005.tar.gz CPAN: Digest::MD5 loaded ok CPAN: Compress::Zlib loaded ok Checksum for /home/user name/.cpan/sources/authors/id/R/RJ/RJBS/Email-Sender -0.110005.tar.gz ok Scanning cache /home/user name/.cpan/build for sizes sh: /home/user: No such file or directory /bin/tar: This does not look like a tar archive /bin/tar: Exiting with failure status due to previous errors Uncompressed /home/user name/.cpan/sources/authors/id/R/RJ/RJBS/Email-Sender -0.110005.tar.gz successfully Using Tar:/bin/tar xvf /home/user name/.cpan/sources/authors/id/R/RJ/RJBS/Em ail-Sender-0.110005.tar: /bin/tar: /home/user: Cannot open: No such file or directory /bin/tar: Error is not recoverable: exiting now Couldn't untar /home/user name/.cpan/sources/authors/id/R/RJ/RJBS/Email-Send er-0.110005.tar 

使用下面给出的命令:

 cpan Email::Sender 

尽管Email::Sender具有很好而简单的命令结构,但它不是标准Perl安装的一部分。 但是, Net :: SMTP是。

是的, Net::SMTP的使用稍微复杂一点,但是你可能已经安装了它,如果你的Perl脚本在不同的机器上使用,包括安装CPAN模块的机器可能不可行,你必须处理。

如果你真的喜欢Email::Sender ,你可以根据你安装的Perl类型来安装它。 如果您拥有ActiveState,则可以使用Perl Package Manager(位于ActiveState下的“开始”菜单中)为您下载Email::Sender

看看你的错误信息,首先安装Archive::TarCompress::Zlib ,看看是否有助于安装Email::Sender

如果没有,并且已经安装了7Zip ,进入/home/user name/.cpan/sources/authors/id/R/RJ/RJBS目录,然后使用7Zip手动解压文件Em ail-Sender-0.110005.tar 。 如果失败,请转到电子邮件发件人的CPAN页面手动下载抓取的焦油球,并使用7Zip解压缩。

一旦完成,您将不得不手动运行以下命令:

  C> perl Makefile.PL 

C> nmake 1

  C> nmake test C> nmake install 

毕竟,CPAN就是这样做的。

还有一件事:看看我的svn-watch.pl程序。 围绕#767行是使用Net::SMTP一个实际例子。 我也使用Mail::Sendmail ,这是另一个Perl电子邮件模块,因为有些网站有Net::SMTP麻烦,所以我给他们选择使用Mail::Sendmail代替。 你可以看到我使用的逻辑来确定是否安装了Mail::Sendmail ,如果是,使用它。 如果Mail::Sendmail没有安装,我默认为Net::SMTP 。 该测试逻辑在#739至#742行。

希望这可以帮助。


1.命令可能是nmake或取决于你的Perl发行版。