XMPP用蟒:xmpp.protocol.InvalidFrom:(u'invalid-从”, '')
题
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)
我收到以下错误消息,当我尝试运行它:
xmpp.protocol.InvalidFrom: (u'invalid-from', '')
这是为什么:(
解决方案
从XMPP协议规范:
如果在“从”的值 地址不匹配由接收代表的主机名 服务器开放的TCP连接(或任何验证域时 其,如接收服务器的一个子域名验证 主机名或接收服务器托管在其他验证域) 那么权威服务器必须产生一个流 错误条件并终止XML流和底层 TCP连接。
这基本上意味着,如果发送者不被XMPP服务器认识到的,它会与此消息进行答复。 XMPP提供注册机制: xmpp.features.register
不隶属于 StackOverflow