문제

Here's my code that is not working:

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

The mailx command works fine off the command line, but not in this Perl script context.

Any idea what I'm missing?


I suspect that this line's format/syntax:

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

is the culprit.

도움이 되었습니까?

해결책

You just need an extra | at the beginning:

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

다른 팁

Do you really want to use external binaries for either the uuencode or the mailx bit? UUencode is almost trivial with pack.

There are other ways to send mail. See the How do I send mail? in perlfaq9.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top