なぜパイプのuuencodeの出力は、単一のPerlのopen文でのmailxすることはできませんか?

StackOverflow https://stackoverflow.com/questions/2519074

質問

はここで働いていない私のコードです:

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