【问题标题】:Perl send email to web server without modulesPerl 不带模块向 Web 服务器发送电子邮件
【发布时间】:2023-04-01 14:02:01
【问题描述】:

我编写了一个程序来对服务器 (email:cms1@melitaplc.com) 进行一些监控,然后向连接到 Web 服务器 (smtp.melita) 的笔记本电脑 (daniel.saliba@melitaplc.com) 发送一封电子邮件.com)。在我的电子邮件丹尼尔....我尝试添加 smtp 端口即 sendEmail("dan​​iel.saliba\@melitaplc.com:25",.....) 但我得到了 /export/home/cassi/dead.letter。 ..

P.S 我无法安装任何 CPAN 模块,因此下面的代码。

程序执行没有任何错误,但我没有收到电子邮件。

sendEmail("daniel.saliba\@melitaplc.com", "cms1\@melitaplc.com", "ALERT", "This is a  test" );

sub sendEmail
 {
    my ($to, $from, $subject, $message) = @_;
    my $sendmail = '/usr/lib/sendmail';
    open(MAIL, "|$sendmail -oi -t");
            print MAIL "From: $from\n";
            print MAIL "To: $to\n";
            print MAIL "Subject: $subject\n\n";
            print MAIL "$message\n";
    close(MAIL);
 }

【问题讨论】:

  • “我无法安装任何 CPAN 模块,因此下面的代码。” ——你是probably wrong about that
  • 这是一台旧的 solaris 9 机器,它是公司服务器,所以最好我可以在不安装任何东西的情况下找到解决方案,而且我尝试过但它没有让我这样做。
  • @dsaliba 你真的读过这个链接吗?
  • 你试过Net::SMTP 吗?它是一个核心模块。
  • Solaris 9 — 这听起来像安装任何像样的 CPAN 模块或重新编译 perl 都需要好久...

标签: perl email webserver


【解决方案1】:

如果您无权安装 CPAN 模块,那么您可能也无法阅读邮件日志...所以您可以尝试运行

/usr/lib/sendmail -oi -t -v

在命令行上,输入脚本发送给它的相同文本,然后查看它的作用。 -v 开关应该为您提供大量调试信息。

【讨论】:

    猜你喜欢
    • 2014-08-12
    • 1970-01-01
    • 2011-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多