Skip to content

Latest commit

 

History

History
117 lines (92 loc) · 4.43 KB

README.rst

File metadata and controls

117 lines (92 loc) · 4.43 KB
Author: Øyvind Kolbu and Ståle Kristoffersen
Contact: [email protected] and/or [email protected].

exispool is a tool for handling exim message spools. Exim is a MTA that temporarily stores mails that are passing trough it in a spool. When exim is not able to deliver a mail to all its receipients, it can reside in the spool for quite some time. If a machine or server is wrongly configured and is sending out e-mails that have errors, the spool can quickly be filled up with a lot of messages. To keep the exim from trying to deliver all those e-mails one would use exispool with a few options to match the e-mails that are causing the problems, and either delete or freeze them. When a message is frozen exim will not try to deliver it again.

The latest version of this program is exispool-1.1, for older releases see here.

exispool runs fine on Python 2.4, and it should not be too much work to make it work with Python 2.3.

exispool is self contained, and require no 3rd party modules.

If you want to run regressions tests before installing it:

$ python tests.py

To install it:

$ python setup.py install

exispool will try to look in /etc/exispoolcfg for it's configuration. The file should consist of a list of exim spool directories. If no config file is present one or more spools must be specified on the command-line.

If a configuration file exists and one or more spools are given on the command line the spools from the configuration file will be ignored.

To get an overview over what options are supported run this command:

$ exispool.py -h
Usage: exispool.py [options] spool1 [spool2 ...]

Options:
-h, --help                  show this help message and exit
-v, --verbose               be verbose
-V, --version               show version
-o FILE, --optionfile=FILE  spesify a configuration file at FILE

These options control which messages will be matched. ADDR/STRING is a regular expression:
-f ADDR, --from=ADDR          envelope from matches ADDR
-F ADDR, --hfrom=ADDR         header "From" matches ADDR
-E STRING, --hsubject=STRING  header "Subject" matches STRING
-t ADDR, --to=ADDR            envelope to matches ADDR
-T ADDR, --hto=ADDR           header "To" matches ADDR
-C ADDR, --cc=ADDR            header "Cc" matches ADDR
-M ADDR, --message-id=ADDR    header "Message-Id" matches ADDR
-R ADDR, --reply-to=ADDR      header "Reply-To" matches ADDR
-S ADDR, --smtp-user=ADDR     exim smtp user matches ADDR
-m HOST, --from-host=HOST     message came from HOST
-b HOST, --by-host=HOST       message passed by HOST
-i, --invert                  invert matches
-z, --frozen                  match if message is frozen
-n, --not-frozen              match if message is not frozen

These options control what to do with messages that match:
-l, --list                    list matching messages
-L, --list-exim-id            only list exim queue id
-p, --list-header-path        list path to header file
-q, --quiet                   disable default output
-d, --delete                  delete matching messages
-c, --count                   print number of matches
-s, --size                    print total size of messages matching
-r, --freeze                  freeze the messages
-H, --thaw                    thaw (unfreeze) the messages
-D, --delivered-domains       list delivered domains
-u, --undelivered-domains     list undelivered domains

ADDR and HOST are regular expressions and can be a partial address or host. To freeze and list the exim-id for all messages that has been via the machine lister.uio.no and the envelope from contains geo run the following command:

exispool.py -b 'lister\.uio\.no' -f geo -L -r
exispool-X-Y\
    README          This file
    tests.py        Regression-script
    setup.py        Installation-script
    exispool        This is the main script.
    testspool\      Directory containing a sample spool, used for testing
        ....