IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Web Perl Discussion :

Réception d'un mail


Sujet :

Web Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 179
    Par défaut Réception d'un mail
    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

  2. #2
    Membre chevronné Avatar de iblis
    Inscrit en
    Janvier 2007
    Messages
    510
    Détails du profil
    Informations personnelles :
    Âge : 58

    Informations forums :
    Inscription : Janvier 2007
    Messages : 510
    Par défaut
    Bonsoir.

    Ta question n'est pas très claire, veux-tu
    1. Interroger un serveur mail (quel protocole ? POP, IMAP ?) et récupérer les pièces jointes de chaque mail ?

    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 ?
    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.

    Moi j'utiliserais Mail::POP3Client et MIME::Parser. Jette un oeil à la doc sur le CPAN.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 179
    Par défaut
    Citation Envoyé par iblis Voir le message
    Bonsoir.

    Ta question n'est pas très claire, veux-tu
    1. Interroger un serveur mail (quel protocole ? POP, IMAP ?) et récupérer les pièces jointes de chaque mail ?

    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 ?
    Dans le premier cas, tu peux utiliser Mail:OP3Client ou Net:OP3 pour récupérer les en-têtes et les corps de message. Pour extraire les attachements du corps du message, utilise alors MIME:arser ou Mail::MIME.

    Moi j'utiliserais Mail:OP3Client et MIME:arser. Jette un oeil à la doc sur le CPAN.
    Oui, ce que je souhaite faire correspond à la 2ème solution.
    Le mail est reçu et il faut l'analyser.

  4. #4
    Membre chevronné Avatar de iblis
    Inscrit en
    Janvier 2007
    Messages
    510
    Détails du profil
    Informations personnelles :
    Âge : 58

    Informations forums :
    Inscription : Janvier 2007
    Messages : 510
    Par défaut
    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');
    }

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 179
    Par défaut
    Citation Envoyé par iblis Voir le message
    Tu donnes les informations sur ce que tu veux au compte-goutte, toi .
    Désolé.
    Quel est le format de ta boîte mail ?
    Pour effectuer des tests, j'utilise mon compte yahoo mais je ne sais pas le format de cette boite 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');
    }

  6. #6
    Membre chevronné Avatar de iblis
    Inscrit en
    Janvier 2007
    Messages
    510
    Détails du profil
    Informations personnelles :
    Âge : 58

    Informations forums :
    Inscription : Janvier 2007
    Messages : 510
    Par défaut
    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);
    }

Discussions similaires

  1. [Mail] Accusé de réception pour e-mail en PHP
    Par Dirty Harry dans le forum Langage
    Réponses: 12
    Dernier message: 30/08/2011, 17h33
  2. [Mail] Script de réception d'e-mail
    Par mejri dans le forum Langage
    Réponses: 2
    Dernier message: 04/01/2007, 11h24
  3. [Logiciel] Outlook : problème réception massive de mails
    Par malbaladejo dans le forum Outlook
    Réponses: 1
    Dernier message: 09/12/2005, 14h00
  4. Message d'alerte de réception d'un mail
    Par jules_lenoir dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 06/12/2005, 19h06
  5. Message d'alerte de réception d'un mail
    Par jules_lenoir dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 06/12/2005, 11h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo