我写了一个脚本,需要向特定用户发送电子邮件。
下面是脚本:
#!/usr/bin/perl
use strict;
use warnings;
my $filename = "/usr/people/vkk/Downloads/report_daily_2022_08_30.txt";
my $mailprog='/usr/'.($^O eq 'irix'?'lib':'sbin').'/sendmail';
`echo "Subject:Report" | $mailprog -t $ENV{'USERMAIL'} < $filename `;
print "Donen";
脚本运行良好,但正如我所提到的主题作为报告,这无法在电子邮件中显示主题。
在这种情况下,我如何添加主题?
我不想使用mail
命令,因为附件是作为附件发送的。
当我们打开电子邮件时,使用sendmail
的附件显示在邮件正文中。因此需要在sendmail
命令本身中实现这一点。
通常您不想在backticks中做这些事情。你还说你不想使用模块。
你可以打开一个管道并在上面写:
open my $ph, '|-', $mailprog, '-t', $ENV{'USERMAIL'};
print { $ph } ...stuff...
close $ph or die "Problem with $mailprog: $!";
这样,您就可以打印标题,然后向其提供消息,而不是在同一个shell语句中尝试管道和重定向。但这有点老派。