GSoC proposal

Subject

JAMES mailing list manager enhancement (moderation and bounce manager)

Subject ID

james-mladmin

Author

Kirill Kosinov

Email

kirill.kosinov@gmail.com

Project Title

JAMES mailing list manager enhancement.

Project description

The main aim of this project is to improve JAMES mlm: to add moderation feature and bounce manager (using VERP). The second - is to add a possibility of getting a mail from archive by it's id.

Project details

JAMES is was designed to accommodate certain objectives, it provides a comprehensive set of services, including many that are usually available only in high-end or well-established e-mail servers. These services are primarily implemented using the Matcher and Mailet APIs, so all features which will be added are based on Mailet API.

This project will add possibilities listed below:

So I going to implement four command's for ModerationMailet: ACCEPT, ALLOW, REJECT, BLOCK.

http://www.kosinov.ru/GSoC/GSoC_commands.jpg

For example: we has a mailing list address dev <at> james.apache.org, and a subscriber kirill.kosinov <at> gmail.com, so message contents are:

From: dev <at> james.apache.org To: kirill.kosinov <at> gmail.com

After VERP processing we will have following:

Return-Path: dev-kirill.kosinov=gmail.com <at> james.apache.org From: dev <at> james.apache.org To: kirill.kosinov <at> gmail.com

By handling this messages we can determine broken addresses, and not to send messages to them.

Deliverables

Development Schedule

April 14 - May 25

I will spend this time to study JAMES architecture and avalon framework, it seems that i should change mailet configuration on the fly, so it will be necessary to find out a correct way to do this.

May 26 - June 20

During this period I will work on mailing lists management and user management (moderation ACL's). Stub for moderation commands (Accept, Allow, Reject, Block) will be created for ACL testing.

June 21 - July 14

Implementation of commands Accept и Allow, testing.

July 15 - August 11

Implementation of Block command, it requires maintenance of blocked users list, unblocking of blocked users. Bounce manager implementation (based on VERP)

August 11 - August 18

Testing period for new and old features of JAMES.

Why JAMES project?

Today, when many people from all over the world take part in development process, mailing lists discussion became a most popular way of work synchronization (mail often no need of immediate response), thats why mailing list managers should be on top of functionality. JAMES is the first mail server that i configured for "two minutes", it gives an API for development, well documented code and some examples, it is good application, and I'll do my best to add functionality which it needs. Also it was always difficult to me to configure services like exim, it is wery difficult task for an ordinary user, and i want JAMES mlm to became a user friendly service.

About me

I am a student of Kursk State University, also i worked as a Java developer for two years. During my work i participated in two web projects (www.appek.org, b4u.whiteants.net) and some desktop projects, i also fulfilled all requirements for SCJP exam, so i have approved base knowledges of Java. I like Java because it is a very flexible platform and it gives an opportunity to develop application using modern technologies of programming (unit testing, soa). Java code can be well described with UML, during my work i understood, that timeline and good documentation is a half of success.

KirillKosinov/GSoC2008/james-mlm-enhancement (last edited 2009-09-20 23:35:35 by localhost)