Perché non posso inviare l'output di uuencode per mailx in una singola istruzione aperta Perl?

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

Domanda

Ecco il mio codice che non funziona:

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

Il comando mailx funziona benissimo dalla linea di comando, ma non in questo contesto script Perl.

Qualche idea di cosa mi manca?


Ho il sospetto che il formato / la sintassi di questa linea:

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

è il colpevole.

È stato utile?

Soluzione

Hai solo bisogno di un | in più all'inizio:

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

Altri suggerimenti

Vuoi veramente usare i binari esterni sia per l'UUENCODE o il bit mailx? UUencode è quasi banale con imballare .

Ci sono altri modi per inviare la posta. Vedere la Come posso inviare la posta? in perlfaq9 .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top