电子邮件脚本无法在IIS上运行

时间:2014-12-04 19:43:21

标签: perl 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()并得到了类似的结果。

1 个答案:

答案 0 :(得分:1)

首先,将以下标题添加到文件

use strict 'vars';
use warnings;
use diagnostics;
use feature qw/say/;
use CGI::Carp qw(warningsToBrowser fatalsToBrowser);

... your code...

# Print Warnings
warningsToBrowser(1);

如果它失败或对某事发出警告,那将为您提供更多信息。

其次,你是如何安装Net :: SMTP的?确保它,并且它的所有依赖项都具有IIS工作进程的权限。