Barracuda的LDAP查询

我有一个梭子鱼垃圾邮件防火墙300,我刚刚安装了一天。 我正在使用LDAP交换服务器进行LDAP查询。 我到目前为止是:

(& (!userAccountControl:1.2.840.113556.1.4.803:=2) (| (sAMAccountName=${recipient_local_part}) (othermailbox=smtp:${recipient_local_part}@ourdomain.com) (proxyaddresses=smtp:${recipient_local_part}@ourdomain.com) (mail=${recipient_email}) (userPrincipalName=${recipient_local_part}) ) ) 

为了您的方便,我已经格式化了它。 我想要做的是过滤出目录中被禁用的用户,因为他们可能有有效的地址,但我不想再接受他们的邮件了。 我们长时间保留他们的电子邮件地址,但公司政策阻止我从目录中删除他们。

当查询运行时,我得到以下错误:

 failed to issue LDAP find operation: Bad search filter 

查询在没有(!userAccountControl:1.2.840.113556.1.4.803:= 2)的情况下工作,但这是过滤掉禁用帐户的行。

如何使用LDAP来有效地过滤掉已禁用的帐户?

我很难testing这个,但是我认为你需要把这个!useraccountcontrol和or块分组。

 (& ( (!userAccountControl:1.2.840.113556.1.4.803:=2) (| (sAMAccountName=${recipient_local_part}) (othermailbox=smtp:${recipient_local_part}@ourdomain.com) (proxyaddresses=smtp:${recipient_local_part}@ourdomain.com) (mail=${recipient_email}) (userPrincipalName=${recipient_local_part}) ) ) ) 

你为什么要检查这么多的选项? proxyAddresses部分应该绰绰有余:

(&(!userAccountControl:1.2.840.113556.1.4.803:= 2)
(proxyaddresses = smtp:$ {recipient_local_part}@ourdomain.com))

谢谢,

布莱恩·德斯蒙德

活动目录MVP