mimedefang.pl evaluates the file /etc/mimedefang-filter as a Perl fragment. This file should define the filter procedure. For each part of a MIME message, mimedefang.pl calls filter and disposes of the part as instructed by the filter. The various modes of disposition are described in mimedefang-filter(5).
You are strongly recommended to test your filter before installing it in /etc/mimedefang-filter. To test the filter, save it in a file (e.g. test-filter) and run this command:
mimedefang.pl -f test-filter -test
This tests the filter for syntactic correctness. If it passes, you can install it as a production filter. (Note that the test tests only for correct Perl syntax; it doesn't make sure your filter does something sensible.)
There are a few other ways to invoke mimedefang.pl:
mimedefang.pl -structure < mime_message
parses a message on stdin and prints lots of debugging information.
mimedefang.pl -prettyprint < mime_message
parses a message on stdin and prints it in a "nice" format (depending on your definition of "nice".)
prints a list of detected optional Perl modules. The output looks something like this:
calls the function filter_validate, if it is defined in your filter. filter_validate should return an integer; this becomes the exit code. If filter_validate does not exist, an error message is printed and mimedefang.pl exits with an exit code of 1.