Hello,
Je tente de lire un email via pop 3 et suis rudement bloquée !!!
Je ne capte pas pouquoi il bloque sur mon filehandler, quelqu'un pourrait-il m'apporter un peu de cette lumière qui m'échappe ?
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70 #!/usr/bin/perl -w use strict; use Net::POP3; use Net::SMTP; use MIME::Parser; use MIME::Entity; use MIME::Lite; use POSIX 'strftime'; use strict; my $server = 'mail.test.ch'; my $login = 'test'; my $passwd = 'test'; my $nbMessage = 0; my $size = 0; # Tentative de connection au serveur de messagerie my $pop = Net::POP3->new($server) or die "Impossible de se connecter au serveur ".$server."\n"; # Tentative d'autentification $pop->login($login, $passwd) or die "Impossible de se connecter sur le compte ".$login."\n"; # On récupère le nombre de message et la taille actuelle de la boîte ($nbMessage, $size) = $pop->popstat; print "\t--> Le nombre de message est : ".$nbMessage."\n". "\t--> La taille de la boite est : ".$size."\n\n"; # On essaie de récupérer les message afin de les traiter for my $i (1..$nbMessage) { # On récupère le mail my $mail = $pop->get($i,FH); #print @$mail; print "\t--> Récupération du mail ".$i."\n"; # On recherche les différentes partie MIME my $parser = MIME::Parser->new(); my $entity = $parser->parse(\*FH); #$pop->quit(); my($body,$image_encoded); for($entity->parts()) { my $corps = $_->body(); my $head = $_->head()->as_string; $body = join '', @$corps if $head =~ /content-type: text\/plain/is; $image_encoded = join '', @$corps if $head =~ /content-type: image\//is; } # obtention de la date sous la forme d'une chaîne aaaammjj my $time = strftime("%Y%m%d", localtime); my $image_name = "imageEnfin_$time.jpg"; my $message_name = "messageEnfin-$time.txt"; open W, "/home/sguerid/Perl/POP3_IMAP/$message_name" or die "ne peut créer le fichier $message_name\n"; print W $body; close W; open W, "/home/sguerid/Perl/POP3_IMAP/$image_name" or die "ne peut créer le fichier $image_name\n"; print W decode_base64($image_encoded); close W; }
Ps l'erreur est :
Un grand merci !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Bareword "FH" not allowed while "strict subs" in use at test2.pl line 34. Execution of test2.pl aborted due to compilation errors.
Partager