Warum kann ich nicht die Ausgabe des Uuencode in einer einzigen Perl Open-Anweisung mailx?
-
22-09-2019 - |
Frage
Hier ist mein Code, der nicht funktioniert:
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);
Der mailx Befehl funktioniert gut aus der Kommandozeile, aber nicht in diesem Perl-Skript Kontext.
Jede Idee, was ich fehle?
Ich vermute, dass diese Linie des Format / Syntax:
open $mail_fh, "uuencode $attach $attach |mailx -m -s \"$subject\" -r $from $to";
ist der Schuldige.
Lösung
Sie müssen nur eine zusätzliche |
am Anfang:
open $mail_fh, "|uuencode $attach $attach |mailx -m -s \"$subject\" -r $from $to";
Andere Tipps
Wollen Sie wirklich externe Programme verwenden, entweder für die uuencode oder mailx Bit? UUencode ist fast trivial mit packen .
Es gibt auch andere Möglichkeiten, E-Mail zu senden. Sehen Sie sich die Wie kann ich Mail senden? in perlfaq9 .
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow