1
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', '')

为什么会这样:(

4

1 回答 1

4

来自 XMPP 协议规范

如果“发件人”地址的值与打开 TCP 连接时接收服务器表示的主机名(或其任何经过验证的域,例如接收服务器主机名的经过验证的子域或由接收服务器托管的另一个经过验证的域)不匹配),然后授权服务器必须生成流错误条件并终止 XML 流和底层 TCP 连接。

这基本上意味着,如果 xmpp 服务器无法识别发件人,它将回复此消息。XMPP 提供了注册机制:xmpp.features.register

于 2009-08-12T10:14:40.627 回答