我是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'
有人可以帮助我。
答案 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::Sender或Email::Stuffer。