Страница 1 из 1

Отправка писем только активным пользователям в группе

Добавлено: 2021-01-05 18:49:36
werter
Всех с наступившим )

Бьюсь с postfix-ом и отправкой писем только АКТИВНЫМ пол-лям в группе.

Попробовал схему с pipemap:

Код: Выделить всё

pipemap:{ldap:/etc/postfix/ldap/ad_virtual_group_dn_maps.cf, ldap:/etc/postfix/ldap/ad_virtual_group_members_maps.cf}
1. Определяем distinguishedName группы:
cat /etc/postfix/ldap/ad_virtual_group_dn_maps.cf

Код: Выделить всё

...
query_filter = (&(mail=%s)(member=*))
result_attribute = distinguishedName
2. Используем полученный выше результат для поиска только АКТИВНЫХ пол-лей в группе:
cat /etc/postfix/ldap/ad_virtual_group_members_maps.cf

Код: Выделить всё

...
query_filter = (&(memberOf=%s)(objectClass=person)(mail=*)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))
result_attribute = mail
Работает. НО только, если нет вложенных групп. А надо, чтобы и во вложенных группах искало АКТИВНЫХ пол-лей.

P.s. Вот так ищет и во вложенных группах и без использования pipemap. Но в результат попадают ВСЕ пол-ли, а не только АКТИВНЫЕ:

cat /etc/postfix/ldap/ad_virtual_group_maps.cf

Код: Выделить всё

...
query_filter     = (&(mail=%s)(member=*))

result_attribute =
special_result_attribute = member
leaf_result_attribute = mail

Отправка писем только активным пользователям в группе

Добавлено: 2021-01-13 12:38:02
werter
Решено:

Код: Выделить всё

cat /etc/postfix/main.cf
...
virtual_alias_maps = pipemap:{ldap:/etc/postfix/ldap/ad_virtual_group.cf,ldap:/etc/postfix/ldap/ad_virtual_mailbox.cf}
...

cat /etc/postfix/ldap/ad_virtual_group.cf
...
query_filter     = (&(mail=%s)(objectClass=group)(member=*))
result_attribute = distinguishedName
...

cat /etc/postfix/ldap/ad_virtual_group_members.cf
...
query_filter     = (&(userPrincipalName=*)(mail=*)(memberOf:1.2.840.113556.1.4.1941:=%s)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))
result_attribute = mail
...
Проверка:

Код: Выделить всё

postmap -vfq "group@doma.in" "pipemap:{ldap:/etc/postfix/ldap/ad_virtual_group.cf, ldap:/etc/postfix/ldap/ad_virtual_group_members.cf}"
Применяем:

Код: Выделить всё

posfix reload

Отправка писем только активным пользователям в группе

Добавлено: 2021-01-13 21:09:33
werter
Поправка :

cat /etc/postfix/main.cf
...
virtual_alias_maps = pipemap:{ldap:/etc/postfix/ldap/ad_virtual_group.cf, ldap:/etc/postfix/ldap/ad_virtual_group_members.cf}
...