从浏览器运行的Perl脚本未使用与从命令行运行的同一脚本相同的Net :: SMTP版本

时间:2019-01-07 22:18:14

标签: perl smtp

基本问题:我们必须升级一个邮件发送脚本,现在看来它正在使用不同版本的Net :: SMTP,具体取决于它是从命令行运行还是由php脚本调用。我需要检查以确定这种情况的原因以及如何解决?

更长的版本: 我们一直在尝试升级服务器上的邮件发送容量(以前使用纯MIME :: Lite,但是客户端的新邮件服务器是Office365)。我的一位同事找到了一种方法来保留我们原始的MIME :: Lite构建过程,并仅使用Net :: SMTP发送消息。这要求我们在某些系统上更新Net :: SMTP的版本。 (通过CPAN安装完成。)

从命令行(CentOS系统)手动运行时,我们使用的脚本可以正常工作,没有问题。问题是通常是从浏览器中调用它,并且从浏览器运行时,它会出错并显示以下消息:

  

需要Net :: SMTP 3.03版-这仅是./test_path.pl第21行的2.31版。

我认为系统上可能安装了不止一个perl,但是我们只找到了一个,在显示它时浏览器和命令行运行都会显示出来。然后我以为可能显示了两个Net :: SMTP安装,但是我在系统上只找到一个SMTP.pm文件,它是版本3.11的文件。

我不确定要检查的地方还是要寻找的地方-我唯一想到的另一件事就是检查权限,但我不确定要寻找的地方。检查那些。

要解决此问题,我还需要查看其他什么内容?

根据注释中的粘性位请求,从php页面调用代码,如下所示:

$cmd = "./test_path.pl 2>&1";
$exe = shell_exec($cmd);
print $exe;

0 个答案:

没有答案