使用sendmail命令在Perl中发送电子邮件



我写了一个脚本,需要向特定用户发送电子邮件。

下面是脚本:

#!/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语句中尝试管道和重定向。但这有点老派。

最新更新