0
工作,我有以下的测试脚本,以发送电子邮件:电子邮件脚本不是IIS
use strict;
use Net::SMTP;
print "Content-Type: text/plain\n\n";
print "Sending email...\n";
my $smtp = Net::SMTP->new('10.0.0.1', Port => 25, Timeout => 10, Debug => 1);
$smtp->mail("user1\@domain.local");
$smtp->to("user2\@domain.local");
$smtp->data();
$smtp->datasend("From: user1\@domain.local\n");
$smtp->datasend("To: user2\@domain.local\n");
$smtp->datasend("Subject: Test\n\n");
$smtp->datasend("Testing 1 2 3\n");
$smtp->datasend();
$smtp->quit;
,当我在命令行中运行它,它工作得很好,我得到的电子邮件的时候了。但是,当我把它放在C:\inetpub\wwwroot
并从网络浏览器运行它时,我得到了Sending email...
文本,但没有任何内容。没有电子邮件发送,没有错误信息显示。我查看了邮件服务器日志,甚至没有连接。我不知道为什么它从cmd工作,但不是从IIS工作。脚本是否需要一些额外的配置才能通过IIS执行此操作?
我也尝试过sendmail()
并获得类似的结果。
我用你提供的代码得到的错误是'Can not call method " mail " on C:\ inetpub \ wwwroot \ test.pl line 14.'这就是我所期望的,如果' Net :: SMTP-> new'调用失败。但它仍然没有告诉我为什么失败。至于工作进程中的权限,我不确定你的意思。这是一个默认的IIS安装中的简单Perl脚本,所以我会在哪里寻找它? – Dendory 2014-12-05 14:14:10
看看在IIS上运行perl @ http://blogs.iis.net/wadeh/archive/2009/04/13/running-perl-on-iis-7.aspx – harvey 2014-12-07 21:55:11
如果那太复杂了,你可以下载来自http://search.cpan.org/~shay/libnet-3.04/lib/Net/SMTP.pm的Net :: SMTP的源代码 - 将bin文件夹相对于您的CGI复制,并使用'use文件::基名;使用lib dirname(__FILE__)。 '/ bin';' – harvey 2014-12-07 21:58:12