Meta-group list definitions

From Messaging Server Technical Reference Wiki
Jump to: navigation, search

In addition to manipulating LDAP attribute values to construct list member addresses as discussed in Constructing list member addresses, the MTA also supports manipulating address forms to effectively create dynamic list names, via so called meta-lists.

A meta-list for per-department SMS users

As of MS 6.3 and its new process_substitutions MTA option, it is possible to define "meta-groups" and "meta-lists": to, for instance, pre-define via a single meta-list definition what amounts to an entire collection of different lists. For instance, with process_substitutions=4 and ldap_url_result_mapping=mgrpURLResultMapping set,

msconfig> set mta.ldap_url_result_mapping mgrpURLResultMapping
msconfig# set mta.process_substitutions 4

then defining a list with attributes including

memberURL: ldap:///o=usergroup?smsID?sub?(department=$S) 
mgrpUrlResultMapping: X-SMSID-TO-ADDRESS 

would make it possible to send an SMS message to every member of a given department who has an SMS account by sending to an address of the form

Members stored in an external LDAP directory

Another potential use of ldap_url_result_mapping to "construct" e-mail addresses would be where the member addresses are stored in an external LDAP directory, rather than in the usual user/group LDAP directory, with membership being defined in the external LDAP directory in an indirect fashion, via an isMember attribute. For instance, if the external directory stores the list definition along the lines of:

listName: extlist 
listID: 1234abcd 
listMemberRoot: dn-of-root-of-members

and then stores members of the list along the lines of:

isMember: 1234abcd 

then in the regular user/group LDAP directory define the list as:

memberURL: extldap:///listname-search-base?listID?sub?(listName=extlist) 
mgrpURLResultMapping: X-EXTLDAP-LISTS 

with a mapping table

  extldap:///*?listID?sub?*|*  $CROOT|$]extldap:///$0?listMemberRoot?sub?$1[|$2 
! Probe is now: 
!  ROOT|listMemberRoot|listID 
  ROOT|*|*          $C$]extldap:///$0?mail?sub?(isMember=$1)[$E$Y 

See also: