1

这是我的代码不起作用:

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";

是罪魁祸首。

4

3 回答 3

2

您真的想为 uuencode 或 mailx 位使用外部二进制文件吗?UUencode 与pack几乎无关紧要。

于 2010-03-25T23:32:59.047 回答
2

你只需要一个额外|的开始:

open $mail_fh, "|uuencode $attach $attach |mailx -m -s \"$subject\" -r $from $to"; 
于 2010-03-25T23:37:21.853 回答
1

还有其他发送邮件的方法。请参阅如何发送邮件?perlfaq9中。

于 2010-03-26T03:44:58.010 回答