[Twisted-Python] Need working examples of imap4 client.

Pywinder Singh pywinder at monkeydriveengine.com
Fri Jun 12 19:42:55 MDT 2009


Alex,

That link was invaluable.

Twisted docs + project deadlines + my own ignorance = I completely had the
wrong idea about how to set up SSL. Code worked like a charm, and now I'm
very happy not to have to finish the project using python's native imaplib.

I'll certainly share the fruits of my labour with this list.

Thanks again....


On Fri, Jun 12, 2009 at 4:40 AM, Alex Clemesha <clemesha at gmail.com> wrote:

> Hi,
>
> I've wondered myself how to do this, so thanks Phil.
>
> I extended Phil's solution to work with Gmail, which boils
> down to using SSL and setting the correct servername and port, see here:
> http://gist.github.com/128521
>
> Pywinder, you should be able to just change the username/password
> and it will work for you (you might have to have the python ssl module
> installed - post again if that is the case and it's not working for you)
>
> How to do useful stuff with the 'mailboxes' function in the script is
> another question (which I dont know the answer to).  Maybe post
> your usage if you have a chance.
>
>
> -Alex
>
>
>
>
>
> On Thu, Jun 11, 2009 at 5:45 PM, Pywinder
> Singh<pywinder at monkeydriveengine.com> wrote:
> > Phil,
> >
> > Much obliged.
> >
> > Was able to isolate and confirm that the real issue is that login is
> hanging
> > for some reason, and causing the timeout message. I suspect SSL/TLS
> issues,
> > which at least gives me a decided place to start investigating.
> >
> > Thanks again for the code, it was sanity inducing to say the least. ;)
> >
> >
> > Phil Mayers wrote:
> >>
> >> Pywinder Singh wrote:
> >> >
> >> > Ideally, I'd love to see a snipped which is able to log into an imap
> >> > server and gets a list of mailboxes.  If the example on the site works
> >>
> >> Here you go:
> >>
> >> #!/usr/bin/python
> >>
> >> from twisted.internet import reactor, protocol, defer
> >> from twisted.mail import imap4
> >>
> >> # change these...
> >> username = '?'
> >> password = '?'
> >> servername = '?'
> >>
> >> def mailboxes(list):
> >>      for flags,sep,mbox in list:
> >>          print mbox
> >>
> >> def loggedin(res, proto):
> >>      d = proto.list('','*')
> >>      d.addCallback(mailboxes)
> >>      return d
> >>
> >> def connected(proto):
> >>      print "connected", proto
> >>      d = proto.login(username, password)
> >>      d.addCallback(loggedin, proto)
> >>      return d
> >>
> >> def failed(f):
> >>      print "failed", f
> >>      return f
> >>
> >> def done(_):
> >>      reactor.callLater(0, reactor.stop)
> >>
> >> def main():
> >>      c = protocol.ClientCreator(reactor, imap4.IMAP4Client)
> >>      d = c.connectTCP(servername, 143)
> >>      d.addCallbacks(connected, failed)
> >>      d.addBoth(done)
> >>
> >> reactor.callLater(0, main)
> >> reactor.run()
> >>
> >>
> >> This example makes use of deferred chaining i.e. returning a deferred
> >> from a callback handler, so you'll want to understand that.
> >
> >
> > _______________________________________________
> > Twisted-Python mailing list
> > Twisted-Python at twistedmatrix.com
> > http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python
> >
> >
>
>
>
> --
> Alex Clemesha
> clemesha.org
>
> _______________________________________________
> Twisted-Python mailing list
> Twisted-Python at twistedmatrix.com
> http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: </pipermail/twisted-python/attachments/20090612/22b8829b/attachment.html>


More information about the Twisted-Python mailing list