2008-11-26 6 views
0
self.logger.info(msg) 
    popinstance=poplib.POP3(self.account[0]) 
    self.logger.info(popinstance.getwelcome()) 
    popinstance.user(self.account[1]) 
    popinstance.pass_(self.account[2]) 
    try: 
     (numMsgs, totalSize)=popinstance.stat() 
     self.logger.info("POP contains " + str(numMsgs) + " emails") 
     for thisNum in xrange(1, numMsgs + 1): 
      try: 
       (server_msg, body, octets)=popinstance.retr(thisNum) 
      except: 
       self.logger.error("Could not download email") 
       raise 
      text="\n".join(body) 
      mesg=StringIO.StringIO(text) 
      msg=rfc822.Message(mesg) 
      MessageID=email.Utils.parseaddr(msg["Message-ID"])[1] 
      self.logger.info("downloading email " + MessageID) 
      emailpath=os.path.join(self._emailpath + self._inboxfolder + "\\" + self._sanitize_string(MessageID + ".eml")) 
      emailpath=self._replace_whitespace(emailpath) 
      try: 
       self._dual_dump(text,emailpath) 
      except: 
       pass 
      self.logger.info(popinstance.dele(thisNum)) 
    finally: 
     self.logger.info(popinstance.quit()) 

(server_msg, corps, octets) = popinstance.retr (thisNum) renvoie = 20 dans le corps du courrier électronique lorsque le courrier électronique contient caractères chinois.email.retr récupère étranges = 20 caractères quand le corps du message contient des caractères chinois dans ce

Comment puis-je gérer cela?

texte brut du courrier électronique:

Objet: (B/L: 4363-0192-809.015) SI POUR 15680XXXX436

= 20

Cher

= 20

SI FERMÉ

PLS ENVOYER NOUS LE PROJET DE BL ET NOTE DE DÉBIT

= 20

TKS

= 20

MYRI

----- Original Message ----- de = 20

Répondre

4

Utilisez le module quopri pour décoder la chaîne.

Questions connexes