NAME
mimefilter - filter a MIME message stripping unwanted MIME parts
SYNOPSIS
mimefilter [OPTIONS]
DESCRIPTION
The mimefilter script accept on STDIN a MIME conforming message, and
outputs on STDOUT a MIME conforming message.
It strips every unwanted MIME part, warning by email the original
author about this, and outputs a MIME compliant cleaned message, to be
further processed by a mailing list software.
You may find it useful if you don’t want certain attachments on your
mailing lists, or if you want to allow just the text part from
multipart/alternative messages, and so on. You can easily fine tune
the list of allowed MIME types to suit your particular needs, using
normal Perl regexps.
OPTIONS
The mimefilter script may take just an option, in either its short or
long form:
-h, --help
Causes the script to print this very manpage and then succesfully
exit.
However, the mimefilter script won’t bark at you if it discovers you
supplied some other options as well, it’ll just politely ignore them.
ARGUMENTS
The mimefilter script cheerfully takes an unlimited number of command
line arguments and happily discards them all.
FILES
The mimefilter script will look for a system wide configuration file in
/etc/mimefilter.rc, and for a local, per working directory,
configuration file in ./mimefilter.rc. The latter may be used to
override any or all of the parameters defined by the former, thus
allowing easily per mailing list customization.
Several configuration parameters are provided, the most important being
the list of admissible MIME types (where Perl regexps may be used),
along with the list of never to be allowed ones (so that you may even
specify, e.g., ’text/.*’ in the admissible types list and ’text/html’
in the never to be allowed one, to allow every text part but html
ones).
See the default configuration file for examples of use and further
documentation.
ENVIRONMENT
The mimefilter script will look for the following environment
variables:
list
The name of the mailing list this message is intended for. Used as
the return address of the warning issued to the orginal author if
the message is not already clean.
The Smartlist mailing list software will automatically pass this
variable to mimefilter.
listaddr
The address of the mailing list this message is inteded for. Used
in the X-Loop field of the warning issued to the original author if
the message is not already clean.
The Smartlist mailing list software will automatically pass this
variable to mimefilter.
listreq
The administrative (owner) address of the mailing list this message
is inteded for. Used in the return address of the warning issued
to the original author if the message is not already clean.
The Smartlist mailing list software will automatically pass this
variable to mimefilter.
maintainer
The email address of the maintainer of the mailing list this
message is inteded for. If it is defined, it is used to send the
maintainer original carbon copies of messages that have been
modified by this filter -- if filter_mime_cc_maintainer is
affermative, of course.
The Smartlist mailing list software will automatically pass this
variable to mimefilter.
filter_mime_cc_maintainer
A boolean flag: if affermative (i.e., if it matches the /y/i Perl
regular expression), the mimefilter script will send carbon copies
of every cleaned (modified) message to the maintainer of the
mailing list the message is intended for.
Users of the Smartlist mailing list software may conveniently set
this variable in rc.custom.
filter_mime
The mimefilter script itself will pay no attention to this
variable, but if you have followed what the author suggests in the
RECOMMENDED USE WITH THE SMARTLIST MAILING LIST SOFTWARE section,
you will need to define it affermative in rc.custom to activate
this script:
filter_mime = yes
RETURN VALUE
The mimefilter script returns 0 on success and a positive integer on
errors.
RECOMMENDED USE WITH THE SMARTLIST MAILING LIST SOFTWARE
Put the following lines in rc.local.s[012]0 (the right one just depends
on your specific needs, look at rc.submit for more info):
:0
* filter_mime ?? y
{
# Pass the mail trough mimefilter
:0 fw
│ mimefilter
# Executed if mimefilter died
:0 e
{
:0 hfw
│ formail -A "X-Diagnostic: MIME filtering failed"
HOST=continue_with_rc.request
}
# Trash empty messages (author’s already been warned by mimefilter)
:0 Bh
* < 1
/dev/null
}
Also remember to uncomment the appropriate line in rc.custom, to
activate rc.local.s[012]0, and don’t forget to customize the list of
admissibile and never to be allowed MIME types in the configuration
file(s).
USING THIS SCRIPT WITH OTHER MAILING LIST SOFTWARE
The author believes no particular arrangements are necessary to use
this script with mailing list software other than Smartlist, altough
one should remember that mimefilter expects to find at least the list,
listaddr, and listreq environment variables set.
SEE ALSO
The Smartlist mailing list software documentation, the mimefilter.rc(5)
man page (yet to be written).
BUGS
Naaa... ;-)
UNRESTRICTIONS
This program is copylefted. Refer to the GNU General Public License
for conditions of use.
AUTHOR
This program has been written and is actively maintained by
Davide Giovanni Maria Salvetti, <salve@linux.it>.
HISTORY
This script was originally aimed for use with a bunch of Smartlist
served maling lists the author administers. He believes it can be
successfully used with other mailing list softwares as well.