【问题标题】:Mailx not sending email in PerlMailx 不在 Perl 中发送电子邮件
【发布时间】:2016-10-20 20:59:07
【问题描述】:

我正在尝试用 perl 向自己发送一封电子邮件,但我无法让 mailx 正常工作。这是我拥有的整个 perl 文件:

#!/usr/bin/perl

sub emailSender{
   $RECIPIENT = "test\@test.com";
   $FROM = "test\@test.com";
   $SUBJECT = "test subject";
   $BODY = @_[0];

   open (MAIL, "|mailx -s \"$SUBJECT\" $RECIPIENT");
   print MAIL $BODY;
   close MAIL;
}

emailSender("This is a test");

我在运行脚本时没有收到任何错误或警告。它运行正常,但不发送电子邮件。我在这里错过了什么吗?我在手册中找不到任何内容。

【问题讨论】:

  • 你确定这是整个 Perl 文件吗? MAIL 是什么?
  • 总是放use strict; use warnings; !!!
  • 并检查open 的返回值,对于管道,可能还有close

标签: perl mailx


【解决方案1】:

测试正常(注意mail -v):

#!/usr/bin/perl

use strict; use warnings;

sub emailSender{ 
   my $RECIPIENT = 'test@test.com';
   my $FROM = 'test@test.com';
   my $SUBJECT = "test subject";
   my $BODY = shift;

   open (MAIL, "|mail -v -s \"$SUBJECT\" $RECIPIENT");
   print MAIL $BODY;
   close MAIL;
}

emailSender("This is a test");

但对于编码风格,我会保留大写变量仅用于系统或 Perl 内部

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-20
    • 2014-05-27
    • 2015-07-19
    • 2011-01-17
    • 2017-08-10
    • 1970-01-01
    相关资源
    最近更新 更多