django + xmppy:发送邮件给两个收件人

django + xmppy:发送邮件给两个收件人

问题描述:

我试图使用xmpppy从django网站发送jabber邮件。这工作完全正常。django + xmppy:发送邮件给两个收件人

但是,该消息仅发送给列表中的收件人的第一个收件人。当我从django运行以下函数时,以及如果从交互式python-shell运行它,会发生这种情况。然而,奇怪的是,如果我提取函数的-body-并以交互方式运行,那么所有收件人(目前只有2个)会收到消息。

此外,我知道内部的for-loop运行正确的计数次数(2),因为print语句运行两次,并返回两个不同的消息id。

功能如下:

def hello_jabber(request, text): 
    jid=xmpp.protocol.JID(settings.JABBER_ID) 
    cl=xmpp.Client(jid.getDomain(),debug=[]) 
    con=cl.connect() 
    auth=cl.auth(jid.getNode(),settings.JABBER_PW,resource=jid.getResource()) 
    for friend in settings.JABBER_FRIENDS: 
     id=cl.send(xmpp.protocol.Message(friend,friend + ' is awesome:' + text)) 
     print 'sent message with id ' + str(id) 
    cl.disconnect() 
    return render_to_response('jabber/sent.htm', locals()) 

激活在xmpppy调试选项,看看什么是XMPP客户端。

+0

现在试过了。虽然它产生了一个错误,但它似乎并没有做太多的工作,但是这个错误似乎与ps2在django中被undefined/closed关联了。 (根据理由,我认为这是unix上的stderr,调试信息在那里)下面是相关的输出:DEBUG:socket sent DEBUG:套接字错误接收套接字错误数据 AttributeError:'模块'对象没有属性'ps2' – Agrajag 2010-04-14 09:03:49

+0

更多的研究表明,如果我从python(没有Django)运行相同的代码,如预期关于ps2的抱怨消失,但我仍然得到“套接字错误,同时接收数据“”客户端:停止检测到断开连接“。所以django是无辜的:-) 尽管如此,为什么在python解释器中以内联方式运行该代码作为功能炸弹仍然是个谜。 – Agrajag 2010-04-14 09:11:51