Bonsoir,
Je voudrai savoir comment récupérer une piece jointe (c'est une image), from, to, le sujet et le corps d'un mail .
Merci
Bonsoir,
Je voudrai savoir comment récupérer une piece jointe (c'est une image), from, to, le sujet et le corps d'un mail .
Merci
Bonsoir.
Ta question n'est pas très claire, veux-tu1. Interroger un serveur mail (quel protocole ? POP, IMAP ?) et récupérer les pièces jointes de chaque mail ?Dans le premier cas, tu peux utiliser Mail::POP3Client ou Net::POP3 pour récupérer les en-têtes et les corps de message. Pour extraire les attachements du corps du message, utilise alors MIME::Parser ou Mail::MIME.
2. Parser une boîte existante, par exemple au format mbox et, disons, récupérer les images avec les infos du mail les contenant ?
Moi j'utiliserais Mail::POP3Client et MIME::Parser. Jette un oeil à la doc sur le CPAN.
Tu donnes les informations sur ce que tu veux au compte-goutte, toi.
Quel est le format de ta boîte mail ? Dans le cas où ce serait mbox, jette un oeil à Mail::MboxParser, cela devrait certainement faire ton affaire.
Extrait de la doc du CPAN :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 use Mail::MboxParser; # ... my $mb = Mail::MboxParser->new('some_mailbox', decode => 'ALL', parseropts => $parseropts); for my $msg ($mb->get_messages) { # ... $msg->store_all_attachments(path => '/tmp'); }
Désolé.
Pour effectuer des tests, j'utilise mon compte yahoo mais je ne sais pas le format de cette boite mail.Quel est le format de ta boîte mail ?
Il n'y a pas de format "universel" c'est à dire qui fonctionnerait avec toutes les boites mail ?
Dans le cas où ce serait mbox, jette un oeil à Mail::MboxParser, cela devrait certainement faire ton affaire.
Extrait de la doc du CPAN :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 use Mail::MboxParser; # ... my $mb = Mail::MboxParser->new('some_mailbox', decode => 'ALL', parseropts => $parseropts); for my $msg ($mb->get_messages) { # ... $msg->store_all_attachments(path => '/tmp'); }
Re-bonsoir. Je n'y comprends plus rien.
Tu veux donc bien interroger un serveur mail et récupérer les messages et attachements (option 1 de mon premier post), n'est-ce pas ?
D'abord, autant que je sache, yahoo ne donne pas d'accès pop3 aux comptes gratuits. Donc si tu as un compte payant ça va, sinon essaie avec un autre (gmail etc).
Sinon c'est donc bien Mail::POP3Client et MIME::Parser que tu dois (enfin, peux) utiliser.
Je te donne un exemple qui download tous tes messages et attachements dans le répertoire courant (attention ça peut foutre du bordel, modifie en cas de besoin, ou limite le nombre de message à downloader).
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 #!/usr/local/bin/perl use strict; use warnings; use Mail::POP3Client; use MIME::Parser; my $pop = new Mail::POP3Client( USER => 'user', # your username PASSWORD => 'pa55wd', # your user password HOST => "pop3.server.net" # your pop3 server ); my $outputdir = '.'; my $parser = new MIME::Parser; $parser->output_dir($outputdir); print $pop->Count(); for (my $i = 1; $i <= $pop->Count(); $i++) { my $msg = $pop->HeadAndBody($i); my $data = $parser->parse_data($msg); }
Partager