Almost anything can be changed in Mireka without modifying Mireka source code, just by adding new Java classes for example in a jar and initializing these new objects in the configuration files. Particularly useful are the filters, which can alter the processing of a mail immediately within the SMTP transaction.
The API for developing custom filters and recipient specifications is the
mireka.filter
package.
For an overview about the filter mechanism, see the Filters section.
A filter consists of two classes.
FilterType
is referenced in the configuration
files. It is a factory, which create a new
Filter
instance for every mail transaction.
For simple filters, which doesn't have to preserve state between SMTP commands,
extend the
StatelessFilterType
class. This implements both the FilterType and Filter interfaces.
For more complex cases, implement FilterType, and in another (maybe inner-) class extend
AbstractFilter
.
The built-in filters can be used as example.
Place your jars and compiled classes into MIREKA_HOME/lib
and
MIREKA_HOME/classes
respectively.
If you created a filter or other component which may be useful for others, consider submitting it as a patch.