Je dois écrire un script Perl pour envoyer des emails. Le script doit lire le document .txt contenant les adresses de messagerie comme premier argument (il peut y avoir plus d'une adresse, et elles sont toutes séparées par ";") et un document .html qui devrait être le corps de l'e -mail comme son deuxième.script perl sendMail
#!/usr/bin/perl -w
use Net::SMTP::SSL;
sub send_mail {
my $to = $ARGV[0];
open(MYFILE, $to) || die("Could not open file!");
@recepients=<MYFILE>;
close(MYFILE);
my $body = $ARGV[1];
open (TXTFILE, $body);
@lines = <TXTFILE>;
close(TXTFILE);
$body = join("",@lines);
my $from = '[email protected]';
my $password = 'thePassword';
my $smtp;
if (not $smtp = Net::SMTP::SSL->new('smtp.gmail.com',
Port => 465,
Debug => 1)) {
die "Could not connect to server\n";
}
$smtp->auth($from, $password) || die "Authentication failed!\n";
$smtp->mail($from . "\n");
my @recepients = split(/;/, $to);
foreach my $recp (@recepients) {
$smtp->to($recp . "\n");
}
$smtp->data();
$smtp->datasend("From: " . $from . "\n");
$smtp->datasend("To: " . $to . "\n");
$smtp->datasend("Subject: " . $subject . "\n");
$smtp->datasend("\n");
$smtp->datasend($body . "\n");
$smtp->dataend();
$smtp->quit;
}
&send_mail()
J'essayé de travailler quelque chose, mais j'ai un problème avec l'extraction des informations à la fois du txt et des documents .html. Donc l'erreur devrait être quelque part à la division des destinataires.
Vérifiez votre variable '$ to'. C'est un nom de fichier, pas la première ligne du fichier ... De plus, quelques pointeurs vers l'amélioration: 'use strict',' open (mon $ fh, '<', 'nom de fichier') 'et' File :: Slurp'. – Unk
ouais, j'ai corrigé ça, et maintenant ça marche, mais si je ne laisse qu'une adresse e-mail dans le fichier .txt, sinon ça ne les sépare pas. Si tu pouvais seulement m'aider avec ça – Marin