Postfix + LDAP (search filters)
Добавлено: 2007-07-19 14:17:36
Всем привет!
проблема заключается в том, что простые условия работают (например ldapvirtual_query_filter = (mail=%s)), а вот условия типа ldapvirtual_query_filter = (&(mail=%s)(accountStatus=active)) нет.
в main.cf имеем:
virtual_mailbox_maps = ldap:ldapvirtual
ldapvirtual_server_host = 127.0.0.1
ldapvirtual_server_port = 389
ldapvirtual_bind = yes
##### Mega Ahtung#############
ldapvirtual_bind = yes
##### Mega Ahtung#############
ldapvirtual_version = 3
###############################
ldapvirtual_search_base = ou=mailusers,dc=it-pulse,dc=com,dc=ua
ldapvirtual_query_filter = (|(mail=%s)(accountStatus=disabled)(mailAlternateAddress=%s))
ldapvirtual_result_attribute = mailbox
письма пользователям у которых совпадает либо mail либо mailAlternateAddress проходят, а вот пользователи у которых accountStatus=disabled не проходят.
причем, если ldapvirtual_query_filter = (&(mail=%s)(mailAlternateAddress=%s)), то почта вообще не проходит.
смотрим ldapsearch:
ldapsearch -x -W -D "cn=root,dc=it-pulse,dc=com,dc=ua" '(|(mail=somemail)(mailAlternateAddress=somealias)(accountStatus=disabled))'
Enter LDAP Password:
# extended LDIF
#
# LDAPv3
# base <> with scope subtree
# filter: (|(mail=somemail)(mailAlternateAddress=somealias)(accountStatus=disabled))
# requesting: ALL
#
# atl, mailusers, it-pulse.com.ua
dn: uid=atl,ou=mailusers,dc=it-pulse,dc=com,dc=ua
uid: atl
cn: ATL
mail: atl@atl.biz.ua
uidNumber: 1010
gidNumber: 1010
mailHost: mail.it-pulse.com.ua
homeDirectory: /var/imap/home/atl
mailMessageStore: /var/imap/home/atl/Maildir
mailbox: atl/Maildir/
objectClass: qmailUser
objectClass: CourierMailAccount
objectClass: top
objectClass: person
userPassword:: e0NSWVBUfVJRYURVWmNkcUE1SVkg
mailForwardingAddress: atl@atl.biz.ua
sn: postfix
accountStatus: disabled
# search result
search: 2
result: 0 Success
# numResponses: 2
# numEntries: 1
Заранее благодарен за помощь!
проблема заключается в том, что простые условия работают (например ldapvirtual_query_filter = (mail=%s)), а вот условия типа ldapvirtual_query_filter = (&(mail=%s)(accountStatus=active)) нет.
в main.cf имеем:
virtual_mailbox_maps = ldap:ldapvirtual
ldapvirtual_server_host = 127.0.0.1
ldapvirtual_server_port = 389
ldapvirtual_bind = yes
##### Mega Ahtung#############
ldapvirtual_bind = yes
##### Mega Ahtung#############
ldapvirtual_version = 3
###############################
ldapvirtual_search_base = ou=mailusers,dc=it-pulse,dc=com,dc=ua
ldapvirtual_query_filter = (|(mail=%s)(accountStatus=disabled)(mailAlternateAddress=%s))
ldapvirtual_result_attribute = mailbox
письма пользователям у которых совпадает либо mail либо mailAlternateAddress проходят, а вот пользователи у которых accountStatus=disabled не проходят.
причем, если ldapvirtual_query_filter = (&(mail=%s)(mailAlternateAddress=%s)), то почта вообще не проходит.
смотрим ldapsearch:
ldapsearch -x -W -D "cn=root,dc=it-pulse,dc=com,dc=ua" '(|(mail=somemail)(mailAlternateAddress=somealias)(accountStatus=disabled))'
Enter LDAP Password:
# extended LDIF
#
# LDAPv3
# base <> with scope subtree
# filter: (|(mail=somemail)(mailAlternateAddress=somealias)(accountStatus=disabled))
# requesting: ALL
#
# atl, mailusers, it-pulse.com.ua
dn: uid=atl,ou=mailusers,dc=it-pulse,dc=com,dc=ua
uid: atl
cn: ATL
mail: atl@atl.biz.ua
uidNumber: 1010
gidNumber: 1010
mailHost: mail.it-pulse.com.ua
homeDirectory: /var/imap/home/atl
mailMessageStore: /var/imap/home/atl/Maildir
mailbox: atl/Maildir/
objectClass: qmailUser
objectClass: CourierMailAccount
objectClass: top
objectClass: person
userPassword:: e0NSWVBUfVJRYURVWmNkcUE1SVkg
mailForwardingAddress: atl@atl.biz.ua
sn: postfix
accountStatus: disabled
# search result
search: 2
result: 0 Success
# numResponses: 2
# numEntries: 1
Заранее благодарен за помощь!