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


mail: sms@domain.com 
mgrpErrorsTo: sms-errors@domain.com 
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 sms+department-value@domain.com.

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:


mail: external-user1@domain.com 
isMember: 1234abcd 

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


mail: extlist@domain.com 
mgrpErrorsTo: extlist-owner@domain.com 
memberURL: extldap:///listname-search-base?listID?sub?(listName=extlist) 
mgrpURLResultMapping: X-EXTLDAP-LISTS 

with a mapping table


X-EXTLDAP-LISTS 
 
  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: