You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写含恒真条件的Postfix LDAP过滤器实现全体邮件列表?

LDAP恒真过滤器与Postfix all@邮件列表配置方案

一、LDAP恒真过滤器的可行性

可以编写恒真的LDAP过滤器,有两种常用且可靠的实现方式:

  • (objectClass=*):所有LDAP条目都必须包含objectClass属性,因此该表达式对任何条目都为真,兼容性最强。
  • ('somestr'='somestr'):理论上也能生效,但部分LDAP服务器可能对非属性的字符串匹配有限制,不如前者通用。

二、Postfix all@domain.ltd邮件列表的正确配置

你当前配置存在两个核心问题:

  1. 拼写错误:objectClass=PostfixailAccount应为objectClass=PostfixMailAccount
  2. 逻辑错误:当前配置要求某个属性等于all@domain.ltd才返回结果,而我们需要的是当收件人为all@domain.ltd时,返回所有活跃账号。

正确的过滤器配置

将.cf文件中的query_filter修改为:

query_filter = (&(objectClass=PostfixMailAccount)(PostfixaccountActive=TRUE)(|(mail=%s)(%s=all@domain.ltd)))

逻辑说明

  • 当收件人是普通用户(如user@domain.ltd)时,(mail=%s)会匹配对应用户条目,仅返回该用户。
  • 当收件人是all@domain.ltd时,(%s=all@domain.ltd)条件成立,整个|逻辑为真,所有满足objectClass=PostfixMailAccount且PostfixaccountActive=TRUE的条目都会被返回,实现全员邮件列表的需求。

验证建议

  • 确认LDAP服务器中PostfixaccountActive属性的取值为TRUE(部分服务器可能要求小写true,需根据实际配置调整)
  • 用ldapsearch工具测试过滤器有效性,示例命令:
    ldapsearch -x -b "dc=domain,dc=ltd" "(&(objectClass=PostfixMailAccount)(PostfixaccountActive=TRUE)(mail=all@domain.ltd))" mail
    

内容的提问来源于stack exchange,提问作者krege

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 04:22:43