下面是我的代码不工作:

print "To: ";  my $to=<>;  chomp $to;
print "From: ";  my $from=<>;  chomp $from;
print "Attach: "; my $attach=<>; chomp $attach;
print "Subject: "; my $subject=<>; chomp $subject;
print "Message: "; my $message=<>; chomp $message;

my $mail_fh = \*MAIL;
open $mail_fh, "uuencode $attach $attach |mailx -m -s \"$subject\" -r $from $to";
print $mail_fh $message;
close($mail_fh);

在mailx的命令工作正常关闭命令行中,但不是在本Perl脚本上下文。

任何想法,我缺少什么?


我怀疑这行的格式/语法:

open $mail_fh, "uuencode $attach $attach |mailx -m -s \"$subject\" -r $from $to";

是罪魁祸首。

有帮助吗?

解决方案

您只需要一个额外的|开头:

open $mail_fh, "|uuencode $attach $attach |mailx -m -s \"$subject\" -r $from $to"; 

其他提示

你真的想使用外部二进制文件要么UUENCODE或mailx的位? UUENCODE与几乎微不足道包

有其他的方式来发送邮件。见如何发送邮件? perlfaq9

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top