print ("Message Info: Email de $email_de avec comme sujet
\"$email_sujet\"\n");
# Sub de Connexion POP3
sub connexion_pop3 {
$conn = Net::POP3->new($host) or die("ERROR: Unable to
connect.\n");
}
# Sub de Deconnexion POP3
sub deconnexion_pop3 {
$conn->quit();
}
# Sub de Veirification du Nbr de message dans la boite
sub verification_nouveau_message {
$numMsg = $conn->login($user, $pass) or die("ERROR: Unable to
login.\n");
if ($numMsg > 0) {
print "Mailbox has $numMsg message(s).\n";
} else {
print "Mailbox is empty.\n";
}
}
# Analyse des Emails présent dans la boite POP3
sub analyse_email {
foreach my $msg_id (1 .. $numMsg) {
my $header = $conn -> top($msg_id, 0);
my ($subject, $from) = analyze_header($header);
}
}
# Analyse de l'entete pour extraire le Sujet et le From
sub analyze_header {
my $header_array_ref = shift;
my $header = join "", @$header_array_ref;
my ($subject) = $header =~ /Subject: (.*)/m;
my ($from ) = $header =~ /From: (.*)/m;
$email_de = $from;
$email_sujet = $subject;
}
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Mag
Mag a écrit : > Je cherche a decomposé très précisement l'email pour extraire:
1- L'email expediteur 2- Le sujet 3- Le corp du message (avec traitement si html) 4- Sortir les pieces jointes.
Je me reponds a moi meme, j'ai trouve un autre bout de code qui fait a peut pret ce que je veux (merci a l'auteur)
#!/usr/bin/perl use Mail::POP3Client; use MIME::Parser;
my $pop = new Mail::POP3Client( USER => 'mon_compte', # your username PASSWORD => 'mon_pass', # your user password HOST => "mon_serveur" # your pop3 server );
my $outputdir = '.'; my $parser = new MIME::Parser; $parser->output_under($outputdir);
print $pop->Count(); for (my $i = 1; $i <= $pop->Count(); $i++) { my $msg = $pop->HeadAndBody($i); my $data = $parser->parse_data($msg); }
C'est genial cela sauvegarde les emails dans un repertoire et j'ai les pieces jointes ainsi que le corps du message.
Je vais essayer de trouvé la doc du module POP3Client pour voir si il peut aussi m'extraire le From/To/Subject
Mag a écrit :
> Je cherche a decomposé très précisement l'email pour extraire:
1- L'email expediteur
2- Le sujet
3- Le corp du message (avec traitement si html)
4- Sortir les pieces jointes.
Je me reponds a moi meme, j'ai trouve un autre bout de code qui
fait a peut pret ce que je veux (merci a l'auteur)
#!/usr/bin/perl
use Mail::POP3Client;
use MIME::Parser;
my $pop = new Mail::POP3Client(
USER => 'mon_compte', # your username
PASSWORD => 'mon_pass', # your user password
HOST => "mon_serveur" # your pop3 server
);
my $outputdir = '.';
my $parser = new MIME::Parser;
$parser->output_under($outputdir);
print $pop->Count();
for (my $i = 1; $i <= $pop->Count(); $i++) {
my $msg = $pop->HeadAndBody($i);
my $data = $parser->parse_data($msg);
}
C'est genial cela sauvegarde les emails dans un repertoire et j'ai les
pieces jointes ainsi que le corps du message.
Je vais essayer de trouvé la doc du module POP3Client pour voir si il
peut aussi m'extraire le From/To/Subject
Mag a écrit : > Je cherche a decomposé très précisement l'email pour extraire:
1- L'email expediteur 2- Le sujet 3- Le corp du message (avec traitement si html) 4- Sortir les pieces jointes.
Je me reponds a moi meme, j'ai trouve un autre bout de code qui fait a peut pret ce que je veux (merci a l'auteur)
#!/usr/bin/perl use Mail::POP3Client; use MIME::Parser;
my $pop = new Mail::POP3Client( USER => 'mon_compte', # your username PASSWORD => 'mon_pass', # your user password HOST => "mon_serveur" # your pop3 server );
my $outputdir = '.'; my $parser = new MIME::Parser; $parser->output_under($outputdir);
print $pop->Count(); for (my $i = 1; $i <= $pop->Count(); $i++) { my $msg = $pop->HeadAndBody($i); my $data = $parser->parse_data($msg); }
C'est genial cela sauvegarde les emails dans un repertoire et j'ai les pieces jointes ainsi que le corps du message.
Je vais essayer de trouvé la doc du module POP3Client pour voir si il peut aussi m'extraire le From/To/Subject
Mag
Mag a écrit :
Mag a écrit : > Je cherche a decomposé très précisement l'email pour extraire:
1- L'email expediteur 2- Le sujet 3- Le corp du message (avec traitement si html) 4- Sortir les pieces jointes.
Je me reponds a moi meme, j'ai trouve un autre bout de code qui fait a peut pret ce que je veux (merci a l'auteur)
#!/usr/bin/perl use Mail::POP3Client; use MIME::Parser;
my $pop = new Mail::POP3Client( USER => 'mon_compte', # your username PASSWORD => 'mon_pass', # your user password HOST => "mon_serveur" # your pop3 server );
my $outputdir = '.'; my $parser = new MIME::Parser; $parser->output_under($outputdir);
print $pop->Count(); for (my $i = 1; $i <= $pop->Count(); $i++) { my $msg = $pop->HeadAndBody($i); my $data = $parser->parse_data($msg); }
C'est genial cela sauvegarde les emails dans un repertoire et j'ai les pieces jointes ainsi que le corps du message.
Je vais essayer de trouvé la doc du module POP3Client pour voir si il peut aussi m'extraire le From/To/Subject
Ok j'ai rajouté cela:
my $head = $pop->Head($i); my ($subject) = $head =~ /Subject: (.*)/m; my ($from ) = $head =~ /From: (.*)/m; my ($date ) = $head =~ /Date: (.*)/m;
du coup j'ai bien ce qu'il me faut hihi
De: Mag TEST ^M Sujet: Test^M Date: Sat, 28 Feb 2009 09:20:45 +0100^M
Alors derniere question:
Comment extraire avec certitude l'email de $from ? car actuellement c'est "Mag TEST " mais si on ne mets pas de nom ou un autre mailer ?
Comment extraire correctement la date: "Sat, 28 Feb 2009 09:20:45 +0100" dans des variables $jour $mois etc sachant que l'espace peut changer entre Sat, et la date si on est avant le 10 du mois
Merci d'avance pour vos conseils
Mag a écrit :
Mag a écrit :
> Je cherche a decomposé très précisement l'email pour extraire:
1- L'email expediteur
2- Le sujet
3- Le corp du message (avec traitement si html)
4- Sortir les pieces jointes.
Je me reponds a moi meme, j'ai trouve un autre bout de code qui
fait a peut pret ce que je veux (merci a l'auteur)
#!/usr/bin/perl
use Mail::POP3Client;
use MIME::Parser;
my $pop = new Mail::POP3Client(
USER => 'mon_compte', # your username
PASSWORD => 'mon_pass', # your user password
HOST => "mon_serveur" # your pop3 server
);
my $outputdir = '.';
my $parser = new MIME::Parser;
$parser->output_under($outputdir);
print $pop->Count();
for (my $i = 1; $i <= $pop->Count(); $i++) {
my $msg = $pop->HeadAndBody($i);
my $data = $parser->parse_data($msg);
}
C'est genial cela sauvegarde les emails dans un repertoire et j'ai les
pieces jointes ainsi que le corps du message.
Je vais essayer de trouvé la doc du module POP3Client pour voir si il
peut aussi m'extraire le From/To/Subject
Ok j'ai rajouté cela:
my $head = $pop->Head($i);
my ($subject) = $head =~ /Subject: (.*)/m;
my ($from ) = $head =~ /From: (.*)/m;
my ($date ) = $head =~ /Date: (.*)/m;
du coup j'ai bien ce qu'il me faut hihi
De: Mag TEST <mag@laposte.net>^M
Sujet: Test^M
Date: Sat, 28 Feb 2009 09:20:45 +0100^M
Alors derniere question:
Comment extraire avec certitude l'email de $from ?
car actuellement c'est "Mag TEST <mag@laposte.net>"
mais si on ne mets pas de nom ou un autre mailer ?
Comment extraire correctement la date:
"Sat, 28 Feb 2009 09:20:45 +0100"
dans des variables $jour $mois etc sachant que l'espace
peut changer entre Sat, et la date si on est avant le 10
du mois
Mag a écrit : > Je cherche a decomposé très précisement l'email pour extraire:
1- L'email expediteur 2- Le sujet 3- Le corp du message (avec traitement si html) 4- Sortir les pieces jointes.
Je me reponds a moi meme, j'ai trouve un autre bout de code qui fait a peut pret ce que je veux (merci a l'auteur)
#!/usr/bin/perl use Mail::POP3Client; use MIME::Parser;
my $pop = new Mail::POP3Client( USER => 'mon_compte', # your username PASSWORD => 'mon_pass', # your user password HOST => "mon_serveur" # your pop3 server );
my $outputdir = '.'; my $parser = new MIME::Parser; $parser->output_under($outputdir);
print $pop->Count(); for (my $i = 1; $i <= $pop->Count(); $i++) { my $msg = $pop->HeadAndBody($i); my $data = $parser->parse_data($msg); }
C'est genial cela sauvegarde les emails dans un repertoire et j'ai les pieces jointes ainsi que le corps du message.
Je vais essayer de trouvé la doc du module POP3Client pour voir si il peut aussi m'extraire le From/To/Subject
Ok j'ai rajouté cela:
my $head = $pop->Head($i); my ($subject) = $head =~ /Subject: (.*)/m; my ($from ) = $head =~ /From: (.*)/m; my ($date ) = $head =~ /Date: (.*)/m;
du coup j'ai bien ce qu'il me faut hihi
De: Mag TEST ^M Sujet: Test^M Date: Sat, 28 Feb 2009 09:20:45 +0100^M
Alors derniere question:
Comment extraire avec certitude l'email de $from ? car actuellement c'est "Mag TEST " mais si on ne mets pas de nom ou un autre mailer ?
Comment extraire correctement la date: "Sat, 28 Feb 2009 09:20:45 +0100" dans des variables $jour $mois etc sachant que l'espace peut changer entre Sat, et la date si on est avant le 10 du mois
Merci d'avance pour vos conseils
Jogo
> Comment extraire avec certitude l'email de $from ?
J'utilise Mail::Address pour ça. Simple et efficace.
Comment extraire correctement la date:
Et pour ça DateTime::Format::Mail. Là c'est bien plus compliqué, mais la famille DateTime est ce qui se fait de mieux pour la manipulation des dates.
-- C'est surtout particulièrement masochiste et contre-productif. Si le principe c'est que celui qui gueule le plus fort à raison, fufe va devenir un bourbier innomable que même le fme actuel c'est fr.comp.os.vms à côté. -- Éric Marillier dans fufe --
> Comment extraire avec certitude l'email de $from ?
J'utilise Mail::Address pour ça. Simple et efficace.
Comment extraire correctement la date:
Et pour ça DateTime::Format::Mail. Là c'est bien plus compliqué, mais
la famille DateTime est ce qui se fait de mieux pour la manipulation
des dates.
--
C'est surtout particulièrement masochiste et contre-productif. Si le
principe c'est que celui qui gueule le plus fort à raison, fufe va devenir
un bourbier innomable que même le fme actuel c'est fr.comp.os.vms à côté.
-- Éric Marillier dans fufe --
> Comment extraire avec certitude l'email de $from ?
J'utilise Mail::Address pour ça. Simple et efficace.
Comment extraire correctement la date:
Et pour ça DateTime::Format::Mail. Là c'est bien plus compliqué, mais la famille DateTime est ce qui se fait de mieux pour la manipulation des dates.
-- C'est surtout particulièrement masochiste et contre-productif. Si le principe c'est que celui qui gueule le plus fort à raison, fufe va devenir un bourbier innomable que même le fme actuel c'est fr.comp.os.vms à côté. -- Éric Marillier dans fufe --
Freddy DISSAUX
Le Sat, 21 Mar 2009 07:24:58 +0100, Mag écrivait:
Mag a écrit :
Mag a écrit : > Je cherche a decomposé très précisement l'email pour extraire:
1- L'email expediteur 2- Le sujet 3- Le corp du message (avec traitement si html) 4- Sortir les pieces jointes.
Extrait d'un script chez moi:
my $parsed = Email::MIME->new($message);
my @parts = $parsed->parts; my $body = $parsed->body; my $from = $parsed->header('From');
-- freddy <point> dsx <arobase> free <point> fr
Le Sat, 21 Mar 2009 07:24:58 +0100, Mag écrivait:
Mag a écrit :
Mag a écrit :
> Je cherche a decomposé très précisement l'email pour extraire:
1- L'email expediteur
2- Le sujet
3- Le corp du message (avec traitement si html)
4- Sortir les pieces jointes.
Extrait d'un script chez moi:
my $parsed = Email::MIME->new($message);
my @parts = $parsed->parts;
my $body = $parsed->body;
my $from = $parsed->header('From');
Mag a écrit : > Je cherche a decomposé très précisement l'email pour extraire:
1- L'email expediteur 2- Le sujet 3- Le corp du message (avec traitement si html) 4- Sortir les pieces jointes.
Extrait d'un script chez moi:
my $parsed = Email::MIME->new($message);
my @parts = $parsed->parts; my $body = $parsed->body; my $from = $parsed->header('From');
-- freddy <point> dsx <arobase> free <point> fr
Paul Gaborit
À (at) Sat, 21 Mar 2009 10:23:27 +0100, Jogo écrivait (wrote):
Comment extraire avec certitude l'email de $from ?
J'utilise Mail::Address pour ça. Simple et efficace.
Comment extraire correctement la date:
Et pour ça DateTime::Format::Mail. Là c'est bien plus compliqué, mais la famille DateTime est ce qui se fait de mieux pour la manipulation des dates.
Les deux modules font du bon boulot... dans la mesure où les entêtes ont un contenu cohérent ! Mais ce n'est absolument pas garanti. En fait les entêtes d'un mail peuvent avoir un contenu totalement arbitraire. C'est l'expéditeur ou le logiciel de l'expéditeur qui en décide. Et si l'expéditeur est malicieux (blague, spam, pirate...), les entêtes peuvent contenir n'importe quoi. Il faut donc se méfier de ce qu'on extrait et surtout de ce qu'on en fait.
-- Paul Gaborit - <http://perso.mines-albi.fr/~gaborit/> Perl en français - <http://perl.mines-albi.fr/>
À (at) Sat, 21 Mar 2009 10:23:27 +0100,
Jogo <jogo@matabio.net> écrivait (wrote):
Comment extraire avec certitude l'email de $from ?
J'utilise Mail::Address pour ça. Simple et efficace.
Comment extraire correctement la date:
Et pour ça DateTime::Format::Mail. Là c'est bien plus compliqué, mais
la famille DateTime est ce qui se fait de mieux pour la manipulation
des dates.
Les deux modules font du bon boulot... dans la mesure où les entêtes
ont un contenu cohérent ! Mais ce n'est absolument pas garanti. En
fait les entêtes d'un mail peuvent avoir un contenu totalement
arbitraire. C'est l'expéditeur ou le logiciel de l'expéditeur qui en
décide. Et si l'expéditeur est malicieux (blague, spam, pirate...),
les entêtes peuvent contenir n'importe quoi. Il faut donc se méfier de
ce qu'on extrait et surtout de ce qu'on en fait.
--
Paul Gaborit - <http://perso.mines-albi.fr/~gaborit/>
Perl en français - <http://perl.mines-albi.fr/>
À (at) Sat, 21 Mar 2009 10:23:27 +0100, Jogo écrivait (wrote):
Comment extraire avec certitude l'email de $from ?
J'utilise Mail::Address pour ça. Simple et efficace.
Comment extraire correctement la date:
Et pour ça DateTime::Format::Mail. Là c'est bien plus compliqué, mais la famille DateTime est ce qui se fait de mieux pour la manipulation des dates.
Les deux modules font du bon boulot... dans la mesure où les entêtes ont un contenu cohérent ! Mais ce n'est absolument pas garanti. En fait les entêtes d'un mail peuvent avoir un contenu totalement arbitraire. C'est l'expéditeur ou le logiciel de l'expéditeur qui en décide. Et si l'expéditeur est malicieux (blague, spam, pirate...), les entêtes peuvent contenir n'importe quoi. Il faut donc se méfier de ce qu'on extrait et surtout de ce qu'on en fait.
-- Paul Gaborit - <http://perso.mines-albi.fr/~gaborit/> Perl en français - <http://perl.mines-albi.fr/>
Quels sont les mots cle pour savoir ce que veulent dire les "&" en début de ligne?
Pour les mots clés, je ne sais pas... Par contre, pour savoir à quoi sert un & devant un nom de fonction (et non en début de ligne), c'est décrit dans la doc 'perlsub'.
La plupart des scripts qui utilisent '&' devant un nom de fonction, le font de manière abusive et les auteurs n'en mesurent pas toujours les conséquences (éventuellement fâcheuses). La bonne syntaxe dans le cas ci-dessus serait :
Quels sont les mots cle pour savoir ce que veulent dire les "&" en
début de ligne?
Pour les mots clés, je ne sais pas... Par contre, pour savoir à quoi
sert un & devant un nom de fonction (et non en début de ligne), c'est
décrit dans la doc 'perlsub'.
La plupart des scripts qui utilisent '&' devant un nom de fonction, le
font de manière abusive et les auteurs n'en mesurent pas toujours les
conséquences (éventuellement fâcheuses). La bonne syntaxe dans le cas
ci-dessus serait :
Quels sont les mots cle pour savoir ce que veulent dire les "&" en début de ligne?
Pour les mots clés, je ne sais pas... Par contre, pour savoir à quoi sert un & devant un nom de fonction (et non en début de ligne), c'est décrit dans la doc 'perlsub'.
La plupart des scripts qui utilisent '&' devant un nom de fonction, le font de manière abusive et les auteurs n'en mesurent pas toujours les conséquences (éventuellement fâcheuses). La bonne syntaxe dans le cas ci-dessus serait :
Et si les fonctions sont déjà déclarées ou importées, on peut même se passer des parenthèses.
-- Paul Gaborit - <http://perso.mines-albi.fr/~gaborit/> Perl en français - <http://perl.mines-albi.fr/>
espie
In article , Paul Gaborit <Paul.Gaborit+ wrote:
La plupart des scripts qui utilisent '&' devant un nom de fonction, le font de manière abusive et les auteurs n'en mesurent pas toujours les conséquences (éventuellement fâcheuses). La bonne syntaxe dans le cas ci-dessus serait :
Et si les fonctions sont déjà déclarées ou importées, on peut même se passer des parenthèses.
De toutes facons, vu que le script de depart a ete ecrit par quelqu'un qui ne comprend pas la notion de variable locale, c'est mal barre...
J'avoue que c'est impressionnant de voir a quel point on peut faire des trucs moches a partir d'un module propre avec une encapsulation objet decente...
In article <wt9zlfa5z9a.fsf@marceau.enstimac.fr>,
Paul Gaborit <Paul.Gaborit+news@mines-albi.fr> wrote:
La plupart des scripts qui utilisent '&' devant un nom de fonction, le
font de manière abusive et les auteurs n'en mesurent pas toujours les
conséquences (éventuellement fâcheuses). La bonne syntaxe dans le cas
ci-dessus serait :
Et si les fonctions sont déjà déclarées ou importées, on peut même se
passer des parenthèses.
De toutes facons, vu que le script de depart a ete ecrit par quelqu'un
qui ne comprend pas la notion de variable locale, c'est mal barre...
J'avoue que c'est impressionnant de voir a quel point on peut faire
des trucs moches a partir d'un module propre avec une encapsulation
objet decente...
La plupart des scripts qui utilisent '&' devant un nom de fonction, le font de manière abusive et les auteurs n'en mesurent pas toujours les conséquences (éventuellement fâcheuses). La bonne syntaxe dans le cas ci-dessus serait :
Et si les fonctions sont déjà déclarées ou importées, on peut même se passer des parenthèses.
De toutes facons, vu que le script de depart a ete ecrit par quelqu'un qui ne comprend pas la notion de variable locale, c'est mal barre...
J'avoue que c'est impressionnant de voir a quel point on peut faire des trucs moches a partir d'un module propre avec une encapsulation objet decente...