jumfi
(j)ava based (u)nified (m)ail (f)ilter (i)nterface
Contents
What is it?
jumfi will provide a java based uniform mail filter interface using C, JNI and Java. It will allow mail filters build in java to be applied to multiple mail servers of similar and different design.
jumfi will be a library/API that provides a (J)ava based (u)niform (m)ail (f)ilter (i)terface.
This will be done using the programming languages C and Java.
Although the native part of the software is platform depended, support is planned for multiple platforms starting with Linux followed by Windows, and other platforms if the project team aquires this expertise.
The project defines a set of mail delivery events that can be used in mail filting and implement a library exposing these events for Java developers.
The major challenges in this project will be:
- The definition of the mail filter events
- The implementation of the native interfaces to the serveral mailservers
- The performance of the system
The software build will consist of three layers.
- The interface layer
This provides the interface to the serveral mail server implementations
- Sendmail libmilter interface
- pop3 polling interface
- imap polling interface
- MS Exchange interface
- A lot of other mailserver interfaces
- The mail filter abstraction layer in Java
This provides a uniform abstraction of the mailserver events on which a filter can trigger.
- A framework providing that allows easy registration of filters
This framework also provides multiple filter services to multiple mailservers.
Installation
At the moment the project already contains a sendmail milter and Exim 'local_scan' implementation of the mail server adaptors. The application however is stil in alpha stage.
I don't expect the interface presented to unified mailfilters will change a lot after the document on email events (Email lifecycle) is finished. It is the goal to maintain a stable inteface during the alpha stage of the first version.
To build jumfi you will need Java sdk1.4 or higher (www.java.com), ant 1.5 or higher (ant.apache.org) and the cpptasks (ant-contrib.sourceforge.net).
At the moment there is support for milter of sendmail (www.milter.org) and Exim (www.exim.org).
(BTW the application has only been tested on Linux and the gcc compiler).
Right now the sources can be obtained via a tarball and CVS have a look at the sourceforge project page for jumfi and check out released tarballs or how to access the 'CVS Repository'.
If you meet all the requirements above all you need to do is run ant in the project root directory. After that you wil need to implement your own filter to do something usefull.
TODO
- Make a proper website
- Write and Publish documentation
- Implement more mail server adaptors