Wie füge ich mehrere Dateien mit Perl an eine E -Mail an?
-
27-10-2019 - |
Frage
Es fällt mir schwer zu glauben, dass diese Frage nicht so vorhanden ist, aber ich konnte keine Instanz oder einen ähnlich für Perl finden.
Wie auch immer, welches Perl -Modul soll ich verwenden, um mehrere Dateien an eine E -Mail anzuhängen?
Derzeit verwende ich diesen Code, um eine E -Mail mit einem einzigen Anhang zu senden, aber ich konnte nicht herausfinden, wie ich sie so ändern kann, dass mehrere Anhänge verarbeitet werden:
my $mail_fh = \*MAIL;
open $mail_fh, "|uuencode $attachment $attachment |mailx -m -s \"$subject\" -r $sender $recipient";
print $mail_fh $message;
close($mail_fh);
Kann dieser Codeblock so geändert werden, dass mehrere Anhänge verarbeitet werden? Oder muss ich ein spezielles Modul verwenden, um dies auszuziehen? Wenn ja, was ist das Modul und wie würde ich es herausstellen?
Danke für jede Hilfe!
Lösung
Am Ende habe ich ein Beispiel verwendet MIME::Lite
gefunden hier
use MIME::Lite;
use Getopt::Std;
my $SMTP_SERVER = 'smtp.server.com'; #change
my $DEFAULT_SENDER = 'default@sender.com'; #change
my $DEFAULT_RECIPIENT = 'default@recipient.com'; #change
MIME::Lite->send('smtp', $SMTP_SERVER, Timeout=>60);
my (%o, $msg);
# process options
getopts('hf:t:s:', \%o);
$o{f} ||= $DEFAULT_SENDER;
$o{t} ||= $DEFAULT_RECIPIENT;
$o{s} ||= 'Files';
if ($o{h} or !@ARGV) {
die "usage:\n\t$0 [-h] [-f from] [-t to] [-s subject] files ...\n";
}
# construct and send email
$msg = new MIME::Lite(
From => $o{f},
To => $o{t},
Subject => $o{s},
Data => "Data",
Type => "multipart/mixed",
);
while (@ARGV) {
$msg->attach('Type' => 'application/octet-stream',
'Encoding' => 'base64',
'Path' => shift @ARGV);
}
$msg->send( );
Beispiel Verwendung:
./notify_mime.pl -f cheese -t queso -s subject /home/id/cheeseconqueso/some_dir/example1.xls /home/id/cheeseconqueso/some_other_dir/*.xls
Andere Tipps
Sehen attach_file
in E -Mail :: Zeug, oder E -Mail :: Mime Wenn Sie mehr Kontrolle benötigen.
Trotz gemischter Bewertungen habe ich gefunden Mail :: Absender (Und es ist Kumpel Mail :: Sender :: Easy) verdammt gut und unkompliziert zu bedienen und sieht so aus, als ob es mehrere Anhänge verarbeiten kann.
Ich fand die Schnittstelle äußerst nervig in Mail :: Internet.
Alles sollte jedoch besser sein als das, was Sie oben haben. :-)