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

Réseau/Web Python Discussion :

imap et python


Sujet :

Réseau/Web Python

  1. #1
    Membre éclairé
    Inscrit en
    Septembre 2006
    Messages
    365
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 365
    Par défaut imap et python
    Bonjour
    je me connecte a une Mailbox (IMAP) et j'extrais les emails.

    Je cherche un moyen simple d'extraire le BODY du message mais je n'y arrive pas. Je ne veux pas avoir a parser tout le payload de l'email pour en extraire le 'BODY'
    Voici mon code:
    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
     
    import time
    import email, re, string
    import getpass, imaplib
     
    M = imaplib.IMAP4_SSL(IMAPSERVER)
    M.login("notifier",PASSWD)
    M.select()
    typ, data = M.search(None, '(SUBJECT "xxx")')
     
    for num in  data[0].split():
            typ, data = M.fetch(num, '(RFC822)')
            message = email.message_from_string(data[0][1])
            tos = message.get_all("To") or []
            ccs = message.get_all("Cc") or []
            body = message.get_all("BODY") or [] ## marche pas
            subject = message.get_all("Subject") or []
            msgdate = time.strftime('%Y_%m_%d.%T', email.Utils.parsedate(message['date']))
     
            print "SUBJECT          :" + str(subject)
            print "DATE             :" + str(msgdate)
     
            all_recipients = email.Utils.getaddresses(tos + ccs)
     
            recipients=[]
            for realname, addr in all_recipients:
                    recipients.append(addr)
            print "RECIPIENTS      : %s" % recipients[0]
     
            print "body", repr(message.get_payload()) # ne me retourne pas ce que je veux : UNIQUEMENT le texte du corps du message 
    #       print "BODY :\n" + str(body) #retourne [] donc rien!

  2. #2
    Membre chevronné
    Inscrit en
    Janvier 2007
    Messages
    329
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 329
    Par défaut
    Salut,

    C'est au niveau du "fetch" que ça se passe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    typ, data = M.fetch(num, '(BODY[TEXT])')

    Quelques liens potentiellement utiles :
    http://www.devshed.com/c/a/Python/Py...part-2-IMAP/3/
    http://stackoverflow.com/questions/7...etch-in-python

    .

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [langage] traduction d'un fonction python en perl
    Par ay_pepito dans le forum Langage
    Réponses: 3
    Dernier message: 04/12/2007, 15h06
  2. CORBA & PYTHON
    Par stan91stan dans le forum CORBA
    Réponses: 5
    Dernier message: 10/06/2004, 12h32
  3. module .so pour python... ?!
    Par totoetlititi dans le forum Langages de programmation
    Réponses: 2
    Dernier message: 09/03/2004, 14h51
  4. [Lien]erreur dans mon programme python
    Par durnambule dans le forum Général Python
    Réponses: 11
    Dernier message: 29/01/2004, 14h59

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