XMPP con Python: xmpp.protocol.InvalidFrom: (u'invalid-da', '')
Domanda
cl = xmpp.Client('myserver.com')
if not cl.connect(server=('mysefver.com',5223)):
raise IOError('cannot connect to server')
cl.RegisterHandler('message',messageHandler)
cl.auth('myemail@myserver.com', 'mypassword', 'statusbot')
cl.sendInitPresence()
msgtext = formatToDo(cal, 'text')
message = xmpp.Message('anotheremail@myserver.com', msgtext)
message.setAttr('type', 'chat')
cl.send(message)
ottengo il seguente messaggio di errore quando provo a farlo funzionare:
xmpp.protocol.InvalidFrom: (u'invalid-from', '')
Perché sta succedendo :(
Soluzione
Dal protocollo XMPP specifica :
Se il valore della 'dal' l'indirizzo non corrisponde al nome host rappresentato dalla ricezione Server quando si apre la connessione TCP (o qualsiasi dominio convalidato della stessa, come ad esempio un sottodominio convalidata del ricezione del server nome host o un altro dominio convalidato ospitato dal server di ricezione), quindi il server autorevole deve generare un flusso condizione di errore e terminare sia il flusso XML e il sottostante connessione TCP.
che in pratica significa, che se il mittente non viene riconosciuto dal XMPP-server, lo risponderemo con questo messaggio. XMPP fornisce un meccanismo di registrazione: xmpp.features.register