在 Openfire 中拒绝来自非名册用户的消息
Deny messages from non-roster users in Openfire
如何只允许我名册列表中的联系人向我发送消息?
是否有任何 XEP 负责这样做?或者我需要做这个客户端吗?
是的,OpenFire 支持 XEP-0016: Privacy Lists (see this question),可用于根据各种标准来阻止节。
您不能明确屏蔽不在您名册中的联系人的节,但您可以按订阅状态屏蔽 none
,这或多或少可以实现相同的目标。您可以发送这样的内容:
<iq from='romeo@example.net/orchard' type='set' id='msg3'>
<query xmlns='jabber:iq:privacy'>
<list name='message-sub-example'>
<item type='subscription'
value='none'
action='deny'
order='5'>
<message/>
</item>
</list>
</query>
</iq>
这会创建一个名为 message-sub-example
的隐私列表,其中包含一条规则,用于阻止订阅类型为 none
的联系人发送任何消息,包括不在名册中的联系人。要使此列表生效,您需要将其设为活动列表:
<iq from='romeo@example.net/orchard' type='set' id='active1'>
<query xmlns='jabber:iq:privacy'>
<active name='message-sub-example'/>
</query>
</iq>
如何只允许我名册列表中的联系人向我发送消息? 是否有任何 XEP 负责这样做?或者我需要做这个客户端吗?
是的,OpenFire 支持 XEP-0016: Privacy Lists (see this question),可用于根据各种标准来阻止节。
您不能明确屏蔽不在您名册中的联系人的节,但您可以按订阅状态屏蔽 none
,这或多或少可以实现相同的目标。您可以发送这样的内容:
<iq from='romeo@example.net/orchard' type='set' id='msg3'>
<query xmlns='jabber:iq:privacy'>
<list name='message-sub-example'>
<item type='subscription'
value='none'
action='deny'
order='5'>
<message/>
</item>
</list>
</query>
</iq>
这会创建一个名为 message-sub-example
的隐私列表,其中包含一条规则,用于阻止订阅类型为 none
的联系人发送任何消息,包括不在名册中的联系人。要使此列表生效,您需要将其设为活动列表:
<iq from='romeo@example.net/orchard' type='set' id='active1'>
<query xmlns='jabber:iq:privacy'>
<active name='message-sub-example'/>
</query>
</iq>