使用shell命令在perl中发送邮件是行不通的

时间:2017-03-09 18:49:38

标签: perl

我是perl的新手并尝试使用perl脚本发送电子邮件,使用shell命令。它没有给出任何错误,也没有发送电子邮件。

    #! /usr/bin/perl
        my $mail_command="echo hello | mail -s hi -r 'x@zz.com' 'y@zz.com'";
            print($mail_command);
            qx($mail_command);

当我打印消息时,它显示如下。

    echo hello | mail -s hi -r 'x.com' 'y.com'

有人可以帮助我。

2 个答案:

答案 0 :(得分:2)

正如@toolic所提到的那样,问题是可变的interpoliation,但是你仍然需要围绕你的电子邮件地址引用。请尝试以下方法:

#! /usr/bin/perl

my $mail_command=q(echo hello | mail -s hi -r 'x@zz.com' 'y@zz.com');
print($mail_command);
qx($mail_command);

q()就像单引号一样。

答案 1 :(得分:2)

请不要使用这样的命令行程序发送邮件。 CPAN上有许多好的邮件模块。请查看Email::SenderEmail::Stuffer