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

hwazgwia  于 2022-11-15  发布在  Perl
关注(0)|答案(1)|浏览(189)

我写了一个脚本,需要发送电子邮件给特定的用户。
下面是脚本:

#!/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 "Done\n";

脚本运行良好,但正如我提到的 Subject 作为 Report,它无法显示电子邮件中的主题。
在这种情况下如何添加主题?
我不想使用mail命令,因为附件是作为附加文件发送的。
使用sendmail打开邮件时,附件会显示在邮件正文中。因此需要在sendmail命令中实现这一点。

huwehgph

huwehgph1#

通常你不想用反勾来做这些事情,你也说过你不想使用模块。
可以打开管道并向其写入:

open my $ph, '|-', $mailprog, '-t', $ENV{'USERMAIL'};
print { $ph } ...stuff...
close $ph or die "Problem with $mailprog: $!";

这样,您就可以打印头,然后将消息提供给它,而不用在同一个shell语句中尝试管道和重定向。

相关问题