您正在编写一个perl脚本,我正在@var中进行推送(@ var1,$ var2),这些值将被存储并在系统中传递该数组值(“echo @ var1 | mail -s \” perlmailformat \“xyz.perlmonks \ @ example.com”);因此我成功获得邮件,但价值相互之间没有任何新行。请让我知道如何在脚本或sysntax中制作邮件格式
答案 0 :(得分:1)
您正在将@var1
插入到shell命令中,这是一件非常不安全的事情。它还会在同一行中打印数组中的所有项目,因为将数组插入到字符串中会将所有项目连接到一个空格(echo
命令只是将所有项目的参数打印到一行中,其间有空格最后一个换行符。)
您想要open
mail
命令的管道:
my $subject = "perlmailformat";
my $address = "xyz@example.com";
# open a pipe to "mail"
open my $mail, "|-", "mail", "-s" => $subject, $address
or die "Can't open mail command: $!";
# print each line:
print { $mail } "$_\n" for @var1;
# close the pipe
close $mail or die "Couldn't send mail: $!";
这完全绕过了外壳,因此更加安全。
答案 1 :(得分:-1)
将新行传递到数组中,然后将其传递给mail命令。
push @var,"\n";
system("echo \"@var\" | mail -s \"perlmailformat\" xyz.perlmonks\@example.com");