如何通过RecipientFilter用单个extensionAttribute将用户加入多个地址列表
解决方案
你的需求可以通过调整筛选规则的匹配逻辑实现,核心问题是原有-like语法未加通配符属于精确匹配,无法匹配包含多个值的属性内容,同时要避免普通模糊匹配带来的误命中问题,具体实现如下:
- 保持现有的属性赋值规则:使用统一分隔符(当前为分号加空格
;)在CustomAttribute14中填写多个地址列表标识,需要同时加入两个列表的用户直接填写CompanyA; CompanyB即可。 - 调整两个地址列表的收件人筛选规则,使用「前后拼接分隔符+通配符匹配」的逻辑,确保只命中独立的标识条目:
CompanyA的筛选规则修改为:
CompanyB的筛选规则修改为:-RecipientFilter "(';' + CustomAttribute14 + ';' -like '*; CompanyA;*')"-RecipientFilter "(';' + CustomAttribute14 + ';' -like '*; CompanyB;*')"
实现原理
这套规则会先给CustomAttribute14的取值前后各拼接一个分号,不管目标标识在属性值的开头、中间还是末尾,只要是作为独立的分隔条目存在,拼接后的字符串就一定会包含; 目标标识;的片段,通配符匹配这个片段即可精准筛选出对应列表的用户,不会出现误匹配其他相似标识、或者把其他列表用户加进来的问题。
如果后续需要新增更多地址列表,只需要按照相同格式新增对应筛选规则即可,单个CustomAttribute14的存储容量足够支持数十个地址列表标识的划分需求。
内容的提问来源于stack exchange,提问作者Nemaides
相关产品推荐
相关产品推荐

