Exim and Smartlist FAQ - 1st draft

Página superior
Eliminar este mensaje
Responder a este mensaje
Autor: mark david mcCreary
Fecha:  
A: exim-users
Asunto: Exim and Smartlist FAQ - 1st draft
fyi - 1st draft - rfc

I am planning on incorporating any feedback and submitting this to the web
page. Thanks to all of those that have provided the software and the clues
on how to do this.

Smartlist is a mailing list package built on top of Procmail. Both are
written by Stephen R. van den Berg and available at

    ftp://ftp.informatik.rwth-aachen.de/pub/packages/procmail/



1) Use Exim 1.62 or greater.

2) Do not use Choplist. Choplist is a utlity program that is the default
interface between Smartlist and the MTA. This program parses the mailing
list into groups of like domains, and calls the MTA, passing the email
addresses via the command line.

Exim is not built for handling large amounts of email addresses via the
command line, and hence not all email address are passed successfully.

3) Therefore, use the forwardfile director, which can expand a local part
into the complete contents of a mailing list file. This is similiar to the
aliasfile director that is used to pass incoming messages to Smartlist.

The directors can have many routines, and the different director routines
will be tried in sequence. Flags like no_more and unseen can cause actions
to stop, or several copies to be acted upon.

However, I can't figure out how to distinguish between the local parts
coming into Smartlist that need to go via the aliasfile, and the local
parts of the same name that represent the mailing list file that needs
expanded.

4) Compile two Exim binaries to get around this problem.

Calling Exim with a -C configuration file causes Exim to revert to the
security privileges of the user (list), which seems to cause other problems.

Don't just compile an extra binary, you will need a whole separate
directory, as Exim forks itself in many situations.

Call the new directory     /usr/local/exim/bin-dist


Modify the following 2 lines in Local/Makefile

    BIN_DIRECTORY=/usr/local/exim/bin-dist
    CONFIGURE_FILE=/usr/local/exim/configure-dist


and compile the second version of exim into the bin-dist directory.

5) set up two runtime configuration files

    /usr/local/exim/configure
    /usr/local/exim/configure-dist


Make sure the configure-dist file does not allow queueing, as the regular
Exim binary will then have a shot at the file in the queue.

Put the forwardfile director for list expansion into the configure-dist file

######################################################################
#                      DIRECTORS CONFIGURATION                       #
######################################################################


# This director handles expansion using a mailing list of email addresses

smartlist_dist_aliases:
driver = forwardfile;
file = /home/list/${local_part}/dist,
no_check_local_user,
forbid_pipe,
forbid_file,
modemask = 002,
skip_syntax_errors

end

Smartlist dist files seem to be rw-rw-r--, so use modemask of 002 to
counter-balance.


6) Modify rc.init in Smartlist to not use Choplist

alt_sendmail                # uncomment if you'd prefer sendmail
                    # to handle the $listdist expansion




7) Modify rc.submit in Smartlist to call new binary that will use
configure-dist

     :0 w: dist.lock
     * !alt_sendmail ?? .
     | /usr/local/exim/bin-dist/exim -f $list-request $list




Good luck.

mark






mark david mcCreary
Internet Tools, Inc.            4615 Post Oak Place, Suite 140
mdm@???          Houston, Texas 77027
http://www.internet-tools.com    713.627.9600