无法从新会话中检索存档的邮件

时间:2018-05-28 10:39:37

标签: xmpp ejabberd strophe ejabberd-module

我正在使用EjabberD并使用

启用了MAM
  mod_mam:  
      default: always

我只能检索我在当前会话中使用客户端发送的消息。如果我在客户端上注销并再次登录,则会从数据库中删除所有已存档的消息。 (通过在第二次登录之前和之后比较Mnesia转储来确定)。

我正在使用基于Strophe js的客户端。

为获取存档消息而发送的IQ数据包

<iq type="set" to="user1@x.x.x.x" xmlns="jabber:client" id="c0104a00-253e-4727-9157-a4ea24d9bc86:sendIQ">
    <query xmlns="urn:xmpp:mam:2">
        <x xmlns="jabber:x:data" type="submit">
            <field var="FORM_TYPE" type="hidden">
                <value>urn:xmpp:mam:2</value>
            </field>
            <field var="with">
                <value>user1@x.x.x.x</value>
            </field>
        </x>
        <set xmlns="http://jabber.org/protocol/rsm" />
    </query>
</iq>

使用

从服务器注销
connection.disconnect();
connection.reset();

编辑:身份验证机制是LDAP和ANON。

host_config:
  "x.x.x.x":
    auth_method:
        - anonymous
        - ldap
    allow_multiple_connections: false
    ldap_servers:
        - "x.x.x.x"
    ldap_encrypt: none
    ldap_port: 389
    ldap_base: "cn=Users,dc=x,dc=x,dc=x"
    ldap_rootdn: "cn=Administrator,cn=Users,dc=x,dc=x,dc=x"
    ldap_password: "xxx"

    ldap_uids:
        - "sAMAccountName": "%u"

我希望邮件永久存档。这样客户端就可以检索历史记录而不在本地存储任何内容。我错过了什么?

1 个答案:

答案 0 :(得分:1)

这些帐户是匿名的吗?如果是这样,他们在注销时会被删除,并且所有相关信息也会被删除,例如名册和妈妈的消息。