Purpose:
  Apply regular expression search to different parts of email and  select MPP group depending on what expression is matched.
Configuration:
  All following options should appear in XML under mppd->groups.
  <members_global_sequence>   Comma-separated list of group selection engines. The following engines can be specified in a list:
   ip_list  - Selects group for all recipients depending on IP address of sending client. The list consists from all IP's that may appear in members_global_textfile,  members_local_textfile, members_addresslist options.
   ldap_recipient  - Selects group for each recipient depending on dynamic LDAP query for recipient group. Ignored if LDAP is not enabled or LDAP is not dynamic.
   address_list_recipient - Selects group for each recipient depending on searching in address list for recipient group. The list consists of email addresses that may appear in members_global_textfile, members_local_textfile,  members_addresslist.
   ldap_sender  - Selects group for all recipients depending on dynamic LDAP query for sender group. Ignored if LDAP is not enabled or LDAP is not dynamic.
   address_list_sender - Selects group for all recipients depending on searching in address list for sender group. The list consists of email addresses that may appear in members_global_textfile, members_local_textfile, members_addresslist.
   header_filter  - Selects group for all recipients depending on searching in message headers for regular expressions. Searching is done with boorex engines listed with members_global_header_filter option (see further). If match expression is found its id is directly mapped to group name.
   attachment_filter  - Selects group for all recipients depending on searching in attachment names for regular expressions. Searching is done with boorex engines listed with members_global_attachment_filter option (see further). If match expression is found its id is directly mapped to group name.
   content_filter - Selects group for all recipients depending on searching in message content and (optionally) attachments content for regular expressions. Searching is done with boorex engines listed with members_global_content_filter option  (see further). If match expression is found its id is directly mapped to group name.
   recipient_filter - Selects group for each recipient depending on searching in SMTP envelope recipient address for regular expressions. Searching is done with boorex engines listed with members_global_recipient_filter option (see further). If match expression is found its id is directly mapped to group name.
Â
   sender_filter  Selects group for all recipients depending on searching in SMTP envelope sender address for regular expressions.  Searching is done with boorex engines listed with members_global_sender_filter option (see further). If match expression is found its id is directly mapped to group name.
 Default members_global_sequence: ip_list, ldap_recipient, address_list_recipient, ldap_sender, address_list_sender
 Example:
   <members_global_sequence> ip_list, ldap_recipient,  address_list_recipient,  ldap_sender,  address_list_sender, header_filter, content_filter, recipient_filter</members_global_sequence>
  <members_global_header_filter>  Comma-separated list of boorex engines that will be used in turns as header_filter for group selection. The id of  matched expression (if any) is directly mapped to group name.  Default: empty
  <members_global_attachment_filter>  Same as previous but for attachment_filter.
  <members_global_content_filter>  Same as previous but for content_filter.
  <members_global_use_cf_in_attachments>  Specifies whether content_filter must be used in attachment content.  Value: yes | no.  Default: no
  <members_global_cf_scan_extensions> Comma-separated list of attachment extensions to use content_filter in. If this list is empty content_filter will be used in all attachments except those restricted by members_global_cf_dont_scan_extensions (see further).
  <members_global_cf_dont_scan_extensions> Comma-separated list of attachment extensions to not use content_filter in. If this list is empty content_filter  will be used in all attachments except those restricted by members_global_cf_scan_extensions (see further).
  <members_global_sender_filter>  Comma-separated list of boorex engines that will be used in turns as sender_filter for group selection. The id of matched expression (if any) is directly mapped to group name.Â
  <members_global_recipient_filter>  Same as above but for recipient_filter
Sample configuration:
<mppd>
 <engines>
 <boorex id="group_by_header">
 <inline id="group1">Subject: test</inline>
 <inline id="group2">Subject: rolex</inline>
 <inline id="group3">Subject: refinance</inline>
 </boorex>
 <boorex id="group_by_attachment">
 <inline id="group4">\.jpg</inline>
 </boorex>
 <boorex id="group_by_content">
 <inline id="group5">bomb</inline>
 <inline id="group6">secret</inline>
 </boorex>
 <boorex id="group_by_recipient">
 <inline id="group7">spamtrap_.*@example.com</inline>
 </boorex>
 <boorex id="group_by_sender">
 <inline id="group8">dont@like.you.com</inline>
 <inline id="group9">welcome@you.com</inline>
 <inline id="group10">list_.*@postfix.com</inline>
 <inline id="group11">.*@domain.com</inline>
 </boorex>
 </engines>
 <groups>
 <members_global_sequence>ip_list, ldap_recipient, address_list_recipient, ldap_sender, address_list_sender, header_filter, attachment_filter, content_filter, recipient_filter, sender_filter</members_global_sequence>
 <members_global_header_filter>group_by_header</members_global_header_filter>
 <members_global_attachment_filter>group_by_attachment</members_global_attachment_filter>
 <members_global_content_filter>group_by_content</members_global_content_filter>
 <members_global_use_cf_in_attachments>yes</members_global_use_cf_in_attachments>
 <members_global_cf_scan_extensions>txt, pdf, doc</members_global_cf_scan_extensions>
 <members_global_recipient_filter>group_by_recipient</members_global_recipient_filter>
 <members_global_sender_filter>group_by_sender</members_global_sender_filter>
 <group id="default">
 </group>
 <group id="group1">
 </group>
 <group id="group2">
 </group>
 <group id="group3">
 </group>
 <group id="group4">
 </group>
 <group id="group5">
 </group>
 <group id="group6">
 </group>
 <group id="group7">
 </group>
 <group id="group8">
 </group>
 <group id="group9">
 </group>
 <group id="group10">
 </group>
 <group id="group11">
 </group>
 </groups>
</mppd>