我在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::Tar
和Compress::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发行版。