2010-04-14 42 views
0

我試圖使用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()) 

回答

0

激活在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

相關問題