SEARCH
NEW RPMS
DIRECTORIES
ABOUT
FAQ
VARIOUS
BLOG

BotDetect - Real-Time Bot Detection API
 
 

MAN page from CentOS 7 ezmlm-idx-7.2.4-3.2.x86_64.rpm

ezmlm-split

Section: User Commands (1)
Index 

NAME

ezmlm-split - distribute (un)subscribe requests to sublists 

SYNOPSIS

ezmlm-splitdir[-dD][splitfile] 

DESCRIPTION

If the action is-subscribeor-unsubscribe,ezmlm-splitanalyzes the target of the request, computing a hash in the range 0-52 fromthe address, and determines the ``domain key'', i.e. the two top levels ofthe host address in reverse order. Thus, the domain entry for ``d@a.b.c''becomes ``c.b'' and the one for ``d@a'' becomes ``a''.

The hash and domain parts are then tested against successive lines ofsplitfile(default isdir/split).If a match is found, the request is forwarded to the corresponding sublist,andezmlm-splitexits 99. Ifsplitfiledoes not exist, a match is not found, or action is not-subscribeor-unsubscribe,ezmlm-splitexits 0.

Insplitfile,blank lines and lines with ``#'' in position 1 are ignored. Other lines areexpected to be of the format ``dom:low:hi:listAATThost'', where ``dom'' isthe top level domain, ``low''-``hi'' the range of the hash (defaults 0 and52), and ``listAATThost'' the name of the corresponding list (default is thelocal list). A line is considered to match if the address hash is between``low'' and ``hi'' inclusive and ``dom'' is empty, or if the ``domain key''matches ``dom'' for the full length of ``dom''. Thus, the address``userAATTaol.com'' would match ``com'' and ``aol.com'', but not ``host.com''.

If the domain specified is the top level domain up to 3 characters, thesplit is identical as that used by the SQL subscriber interface. This isrecommended. There can be several entries for a given sublist.

ezmlm-splitcan be used also for list with SQL-based sublisting. In this case,addresses matching thesplitfileare forwarded to the respective non-SQL sublist, and non-matching addressesare handed by the SQL sublist.

ezmlm-split uses ezmlm-queue(1) to send messages.ezmlm-split sets environment variables from /etc/indimail/ezmlm/global_vars. Thiscan be used to set queue related variables for ezmlm-queue. If/etc/indimail/ezmlm/global_vars exists, existing environment variables are clearedexcept for EZMLM_ETC, EZMLMQUEUE, QMAILQUEUE. Theclearing/setting of environment variables is done like how envdir(1)works.

If/etc/indimail/control/qmqpserversexists,ezmlm-split will useqmail-qmqpc(1)to send messages. Server IP addresses listed one per line in/etc/indimail/control/qmqpserverswill be tried in order.

 

OPTIONS

-d
(Default.) Do. Forward requests to the appropriate list.
-D
Do not process messages. Rather, read addresses, one per line from stdin,and print ``sublist@host: address'' where ``sublistAATThost'' is the addressto which the request would have been forwarded in normal operation. This isused to process a set of existing addresses into a set of addresscollections, one per sublist. The output can be sorted and easily processedinto a set of files, one per sublist containing the addresses that sublisthandles,
 

SPLIT LIST SETUP

To use a hierarchy of sublists, set up the master list and add aezmlm-splitline before theezmlm-manage(1)line indir/manager.Create any number of sublists of the main list on other local or distanthosts. Ideally, these should be non-archived, to point to the correctmessage numbers of the main list archive (seeezmlm-send(1).You can useezmlm-make -Cezmlmsubrcfor this. If you don't, use the text files from the main list, exceptbounce-bottom.Next, createsplitin the main list directory to achieve an appropriate split. Load splittingbetween several local hosts is best achieved by hash, with a blank domain.Geographical splitting with hosts in different countries is best donevia ``domain'' and naturally, a large domain can be subdivided by hash.

Subscribers will receive all messages 'From:' the main list. When theysubscribe or unsubscribe, the request will be forwarded to the appropriatesublist, which will handle the confirmation. All information, exceptbounce-bottomrefers the user to the main list. Thus, to the user the list appears as asingle list with the address of the main list, and distribution amongsublists is at the discretion of the administrator of the main list.

 

ADDING/REMOVING SUBLISTS

In general, the main list should be disabled, while changing the sublistsplit. This can be done by changing the mode ofdir/lockto 0 or by setting the sticky bit for the home directory of the usercontrolling the list.

To remove a sublist, edit the lines for that sublist in the splitfile topoint to another list, and add the existing subscribers of the removedsublist to the sublist taking the load. When splitting a sublist intoseveral sublists, create the new sublists, and edit the split file todistribute the load between them (usually by hash). Process the subscribersof the old list with:

 | ezmlm-split -D dir | sort | program
where to get one file of addresses per new sublist, ``program'' could be:

#!/usr/bin/perlwhile (<>) {  ($f,$t) = split (':');  $t =~ s/^ //;  if ($f ne $of) {    $of = $f;    close(OUT) if ($of);    open(OUT,">$f") or die("Unable to open $f");  }  print OUT $t;}close(OUT) if ($of);

Remove all subscribers from the old list, and add the respectivesubscribers to each list.

For any more drastic reorganizations, collect all the subscribes of theaffected sublists, create the new subscriber lists, and update thesubscribers of the affected lists.

Reorganizations are easier done when lists use SQL support. By temporarilyusing SQL support, reorganizations can be done on running lists even whennormally usingezmlm-splitand local subscriber databases. 

SEE ALSO

ezmlm-list(1),ezmlm-make(1),ezmlm-manage(1),ezmlm-sub(1)ezmlm-unsub(1),qmail-multi(1),qmail-queue(1),ezmlm-queue(1),qmail-qmqpc(1),ezmlm(5),ezmlmrc(5),envdir(8),ezmlmsubrc(5)


 

Index

NAME
SYNOPSIS
DESCRIPTION
OPTIONS
SPLIT LIST SETUP
ADDING/REMOVING SUBLISTS
SEE ALSO

This document was created byman2html,using the manual pages.
 
ICM Bot detect detector