Comment puis-je joindre plusieurs fichiers à un courrier électronique en utilisant Perl?
-
27-10-2019 - |
Question
Je trouve difficile de croire que cette question n'existe pas, mais je ne pouvais pas trouver une instance ou un similaire pour Perl ....
De toute façon, ce module Perl dois-je utiliser pour joindre plusieurs fichiers à un courrier électronique?
À l'heure actuelle, je suis en utilisant ce code pour envoyer un e-mail avec une seule pièce jointe, mais je ne pouvais pas comprendre comment le modifier pour gérer plusieurs pièces jointes:
my $mail_fh = \*MAIL;
open $mail_fh, "|uuencode $attachment $attachment |mailx -m -s \"$subject\" -r $sender $recipient";
print $mail_fh $message;
close($mail_fh);
ce bloc de code peut être modifié pour gérer plusieurs pièces jointes? Ou dois-je utiliser un module spécial pour retirer ceci? Si oui, quel est le module et comment serait script que je sortir?
Merci pour toute aide!
La solution
J'ai fini par aller avec un exemple en utilisant MIME::Lite
trouvé ici
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( );
exemple utilisation:
./notify_mime.pl -f cheese -t queso -s subject /home/id/cheeseconqueso/some_dir/example1.xls /home/id/cheeseconqueso/some_other_dir/*.xls
Autres conseils
Voir attach_file
Email :: Stuff ou E-mail :: MIME si vous avez besoin de plus de contrôle.
En dépit de plus mitigé, j'ai trouvé Mail :: Sender (et il est pal mail :: Sender :: Facile ) bon darn et facile à utilisation et ressemble il peut gérer plusieurs pièces jointes.
Je trouve l'interface extrêmement gênant dans Mail: :. Internet
Tout devrait être mieux que ce que vous avez ci-dessus, cependant. : -)