Que estraño, juraria que si puse el codigo :) aca va: http://www.pastebin.com/m4e387f1a
#!/usr/bin/env python #coding=utf-8 """ Client de IMAP4 que descarga contenido del INBOX de una cuenta en especifico para luego extraer el numero de telefono que debe venir en los correos enviados """ import StringIO import sys from Config import retCredentials import messageParser from twisted.internet.task import LoopingCall from twisted.internet import protocol from twisted.internet import defer from twisted.mail import imap4 from twisted.python import util from twisted.python import log from twisted.internet import reactor debug = 0 class IMAP4Client(imap4.IMAP4Client): def serverGreeting(self,caps): """ Metodo llamado cuando el servidor contesta """ if debug: print "On serverGreeting" self.serverCapabilities = caps if self.greetDeferred is not None: d, self.greetDeferred = self.greetDeferred, None d.addCallback(self.cbLogin) d.callback(self) def cbLogin(self, proto): """ Callback to IMAP login """ if debug: print "On Login" login = self.login(self.factory.username, self.factory.password) login.addCallback(self.startPolling) def startPolling(self, proto): """ Callback to poll every x seconds """ call = LoopingCall(self.selectMailbox,mailbox="INBOX") call.start(20, now=True) def selectMailbox(self, mailbox): """ Select the mailbox to examin """ if debug: print "On selectMailbox" mailbox = self.factory.mailbox return self.select(mailbox).addCallback(self.cbSelectSuccess) def cbSelectSuccess(self, selected): """ Examine the INBOX mailbox for new mails """ if debug: print "On cbSelectSuccess" self.messageCount = selected['EXISTS'] print "Messages: ", self.messageCount unseen = selected['EXISTS'] - selected['RECENT'] if selected['RECENT'] == 0: print "No new messages" return return self.fetchBody("%s:*" % (unseen,) ).addCallback(self.cbProcMessages) def cbProcMessages(self,messages): for message in messages.iteritems(): message[1]['RFC822.TEXT'] class IMAP4ClientFactory(protocol.ClientFactory): protocol = IMAP4Client def __init__(self, username, password, onConn): self.username = username self.password = password self.mailbox = 'INBOX' self.onConn = onConn def buildProtocol(self,addr): if debug: print "On buildProtocol" p = self.protocol() p.factory = self p.greetDeferred = self.onConn auth = imap4.CramMD5ClientAuthenticator(self.username) p.registerAuthenticator(auth) return p def clientConectionFailed(self, connector, reason): d, self.onConn = self.onConn, None d.errback(reason) def ebConnection(reason): log.startLogging(sys.stdout) log.err(reason) reactor.stop() PORT = 143 RESULT = "INBOX" def main(): credentials = retCredentials() hostname = credentials['server'] username = credentials['mailbox'] password = util.getPassword('IMAP4 Password: ') onConn = defer.Deferred( ).addErrback(ebConnection ) factory = IMAP4ClientFactory(username, password, onConn) reactor.connectTCP(hostname, PORT, factory) reactor.run() if __name__ == "__main__": main() El día 22 de febrero de 2010 13:00, lasizoillo <lasizoi...@gmail.com> escribió: > El día 22 de febrero de 2010 19:43, César García <cel...@gmail.com> escribió: >> Hola lista, tengo un cliente imap4 uso twisted todo funciona bien, >> mientras solo llegue 1 email entre cada loop, el cual lo tengo >> configurado que se ejecute cada 20 segundos, si llegan mas de 1 email >> la aplicación solo descarga el primero, dejando los otros como >> "leidos", pero si procesar, me pregunto si alguien de la lista tiene >> experiencia con imap4 con twisted >> >> Acá el código: >> > > Yo tengo experiencia con el imap4 de twisted (aunque hace algún tiempo > que no lo toco). La pregunta del millón es: ¿Dónde has dicho que está > el código? > > Un saludo: > > Javi > _______________________________________________ > Python-es mailing list > Python-es@python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > -- http://celord.blogspot.com/ _______________________________________________ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/