A customizable e-mail content filter written in Python
Version: 0.4EMailFilter is a free and open source e-mail content filter developed using Python.
Operating System: Mac OS X
EMailFilter consists of the following Python modules and shell scripts:
· EMAILFILTER.PY: the core filter logic; it allows you to add as many Python filtering modules as you want, and will give each filtering module a chance to examine each e-mail message and (possibly) add 'X-' headers to record its findings.
· EMAILFILTERD.PY: the preferred mode of operation for EMailFilter; it wraps EMAILFILTER.PY in a daemon that listens on a user-specific port (currently the port number is 5590 + the user id) and processes each e-mail message sent to it through that port.
· EMAILFILTERC.PY: a command-line client program that takes its standard input, sends it through a socket to the daemon on the appropriate port, receives the processed data back, and writes it to standard output. This is not the preferred method of talking to the daemon; see the emailfilterc shell script below.
· EMAILFILTERDEFS.PY: common definitions for all the above modules.
· EMAILFILTERD: a shell script to invoke the daemon.
· EMAILFILTERC: a shell script to invoke the client; it can use emailfilterc.py above if necessary, but this is slow because it requires a new instance of the Python interpreter to be loaded for each e-mail message (the message comes in on standard input and the processed message is written to standard output).
Most e-mail clients can be set up to invoke any desired filter program, sending it messages on standard input and receiving processed messages on standard output; thus, to use EMailFilter, simply tell your e-mail client to invoke emailfilterc -c as the filter program (you can leave out the -c, but as above, filtering will be significantly slower).