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!

War es hilfreich?

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. :-)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top