4

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

4

4 回答 4

3

我使用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
于 2012-04-04T13:40:01.983 回答
3

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

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

cpan Email::Sender

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

于 2012-04-04T12:00:12.527 回答
1

使用下面给出的命令:

cpan Email::Sender
于 2012-04-04T12:09:39.450 回答
1

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

是的,Net::SMTP使用起来有点复杂,但是您可能已经安装了它,并且如果您的 Perl 脚本在各种机器上使用 - 包括可能无法安装 CPAN 模块的机器 - 这是您必须执行的简单操作之一处理。

如果你真的喜欢Email::Sender,你可以根据你的 Perl 安装类型来安装它。如果你有 ActiveState,你可以使用 Perl 包管理器(它在 ActiveState 下的开始菜单中)Email::Sender为你下载。

查看您的错误消息,首先尝试安装Archive::TarCompress::Zlib查看是否有助于安装Email::Sender.

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

完成后,您必须手动运行以下命令:

 C> perl Makefile.PL

C> nmake1

 C> nmake test
 C> nmake install

毕竟,这就是 CPAN 所做的。

还有一件事:看看我的svn-watch.pl程序。第 767 行左右是使用Net::SMTP. 我也使用Mail::Sendmailwhich 是另一个 Perl 电子邮件模块,因为有些网站Net::SMTP在使用Mail::Sendmail. 您可以看到我用来确定是否Mail::Sendmail已安装的逻辑,如果已安装,则使用它。如果Mail::Sendmail没有安装,我默认为Net::SMTP. 该测试逻辑在 #739 到 #742 行。

希望这可以帮助。


1.该命令可能是nmake或者make取决于您的 Perl 发行版。

于 2012-04-04T17:00:55.750 回答