Bonjour, je suis étudiant et débutant en perl, dans le cadre de mon stage je dois faire un envoi de mail automatique, je pensais utiliser le perl avec net::smtp.

mon programe est le suivant:


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#!/usr/local/bin/perl -w
#
use lib "<home>";
use Env;
use Net::SMTP;
use Getopt::Std;
#
my $SMTP_SERVER = '<smtp.smtp.fr>';
my $DEFAULT_SENDER = 'monadresse@.com';
my $DEFAULT_RECIPIENT = 'fulguromoi@hotmail.com';
my $DEFAULT_SUBJECT = 'coucou';
#
getopts('hf:t:s:', \%o);
$o{f} ||= $DEFAULT_SENDER;
$o{t} ||= $DEFAULT_RECIPIENT;
$o{s} ||= $DEFAULT_SUBJECT;
#
if ($o{h} or $o{f} =~ /^False$/ or $o{t} =~ /^False$/ or
		$o{s} =~/^False$/) {
die "usage:\n\tbody | $0 [-h] [-f from (required)] [-t to (required)]
		[-s subject (required)\n";
}
#
$mailmsg=Net::SMTP->new($SMTP_SERVER);
$mailmsg->mail($o{f});
$mailmsg->to($o{t});
$mailmsg->data();
$mailmsg->datasend("To: $o{t}\n");
$mailmsg->datasend("Subject: $o{s}\n\n");
$mailmsg->datasend("contenu du message");
$mailmsg->dataend();
$mailmsg->quit;
#
exit;
Lorsque je l'éxécute j'obtiens le message d'erreur suivant:
Can't call method "mail" on an undefined value at M:\smtp4.pl line 26.
qui correspond à la premiere occurence du net::smtp ---> $mailmsg->mail($o{f}); .
Je pensais à un problême de librairie mais le package est bien installé.
Un message d'erreur similaire peut intervenir lorque le programe n'arrive pas à acceder au smtp mais il n'indique pas la même ligne.
Mon smtp n'a pas de login/password.
Je ne sais pas quoi faire j'ai essayer plusieurs programmes tous avec la même bibliotheque et j'ai toujours la même erreur.
Si une âme charitable détenait la science, elle serait bien gentil de m'aider

Merchi