The code I used:

import xmppy
jid = xmpp.JID('[email protected]')
cl = xmpp.Client(jid.getDomain())
cl.connect(server=('talk.google.com',5222))
cl.auth('[email protected]', 'password','something')

It seems to be working till the connect, I get 'tls' as a return from connect. After that, the cl.auth fails. I have tried using the user name with and without the @gmail.com . I have tried with a different user, so my password is not wrong. I have tried using 5223 instead of 5222, in which case i get 'ssl' as a return.

Here is the debug output I get:

DEBUG: socket       got   <stream:stream from="gmail.com" id="960A4092BC8F9722" version="1.0" xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:client">
  <stream:features>
  <mechanisms xmlns="urn:ietf:params:xml:ns:xmpp-sasl">
  <mechanism>PLAIN</mechanism>
  <mechanism>X-GOOGLE-TOKEN</mechanism>
  <mechanism>X-OAUTH2</mechanism>
  </mechanisms>
  </stream:features>
DEBUG: dispatcher   warn  Unknown stanza: features
DEBUG: dispatcher   ok    Dispatching unknown stanza with type-> props->[u'urn:ietf:params:xml:ns:xmpp-sasl'] id->None
DEBUG: sasl         start Plugging <xmpp.auth.SASL instance at 0x2f22998> into <xmpp.client.Client instance at 0x2f19bd8>
DEBUG: dispatcher   info  Registering handler <bound method SASL.SASLHandler of <xmpp.auth.SASL instance at 0x2f22998>> for "challenge" type-> ns->(urn:ietf:params:xml:ns:xmpp-sasl)
DEBUG: dispatcher   warn  Registering namespace "urn:ietf:params:xml:ns:xmpp-sasl"
DEBUG: dispatcher   info  Registering protocol "unknown" as <class 'xmpp.protocol.Protocol'>(urn:ietf:params:xml:ns:xmpp-sasl)
DEBUG: dispatcher   info  Registering protocol "default" as <class 'xmpp.protocol.Protocol'>(urn:ietf:params:xml:ns:xmpp-sasl)
DEBUG: dispatcher   warn  Registering protocol "challenge" as <class 'xmpp.protocol.Protocol'>(urn:ietf:params:xml:ns:xmpp-sasl)
DEBUG: dispatcher   info  Registering handler <bound method SASL.SASLHandler of <xmpp.auth.SASL instance at 0x2f22998>> for "failure" type-> ns->(urn:ietf:params:xml:ns:xmpp-sasl)
DEBUG: dispatcher   warn  Registering protocol "failure" as <class 'xmpp.protocol.Protocol'>(urn:ietf:params:xml:ns:xmpp-sasl)
DEBUG: dispatcher   info  Registering handler <bound method SASL.SASLHandler of <xmpp.auth.SASL instance at 0x2f22998>> for "success" type-> ns->(urn:ietf:params:xml:ns:xmpp-sasl)
DEBUG: dispatcher   warn  Registering protocol "success" as <class 'xmpp.protocol.Protocol'>(urn:ietf:params:xml:ns:xmpp-sasl)
DEBUG: socket       sent  <auth xmlns="urn:ietf:params:xml:ns:xmpp-sasl" mechanism="PLAIN">Y3MxMGIwNTlAZ21haWwuY29tQGdtYWlsLmNvbQBjczEwYjA1OUBnbWFpbC5jb20AcHZ6bXZoN3FjYzE=</auth>
DEBUG: socket       error Socket error while receiving data
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/xmpppy-0.5.0rc1-py2.7.egg/xmpp/transports.py", line 153, in receive
    try: received = self._recv(BUFLEN)
SSLError: [Errno 8] _ssl.c:1359: EOF occurred in violation of protocol
DEBUG: client       stop  Disconnect detected
DEBUG: socket       error Socket operation failed
DEBUG: sasl         stop  Plugging <xmpp.auth.SASL instance at 0x2f22998> out of <xmpp.client.Client instance at 0x2f19bd8>.
2

There are 2 best solutions below

0
On BEST ANSWER

Solved this, was this stupidest thing. Gmail was blocking access as it considered my applications activity 'suspicious and unusual' I had to login to my account from a browser, tell them it was me and then login from the application in 10 minutes

0
On

for some odd reason it (for some users) only works with the domain googlemail.com. maybe you want to try this one. so your username is without @ or any domain, and the server is googlemail.com