Re: [Evolution-hackers] Sieve application for filtering mail [was: Re: Evolution custom email message]



On Wed, 2014-03-26 at 21:08 +0530, Vanya Jauhal wrote:
I wanted to know what exactly the evolution team expects the
application to perform and what I can contribute towards it as a mail
filter can work on many different levels and the criterion of
classification may also differ.

Hi Vanya,

I'm the one that suggested the Sieve filtering as a student project,
based on a GSoC project proposal from a couple years ago that never came
to fruition.

Integrating Sieve filtering into Evolution is going to take an enormous
effort, way outside the scope of a reasonable student project.  But I
thought maybe it could be broken down into more manageable chunks.

I'm kind of making this up as I go, so I don't have all the details
fleshed out yet, and I'm still learning about the Sieve language myself,
but for the initial concept demonstration my thought was to create a
command-line program that can talk to a ManageSieve server.

ManageSieve is a network protocol somewhat similar to IMAP and POP3,
except instead of managing email messages it manages Sieve scripts for
filtering email messages.

The ManageSieve protocol is described in RFC 5804:

        http://tools.ietf.org/html/rfc5804

The requirements for the command-line program would simply be to connect
to and authenticate with a ManageSieve server, and implement ManageSieve
commands like PUTSCRIPT, LISTSCRIPTS, GETSCRIPT, DELETESCRIPT,
RENAMESCRIPT and CHECKSCRIPT.

When dealing with the Sieve scripts themselves, the program will simply
read the script from a file or write the script to a file.  We WON'T be
parsing the Sieve language in this phase of the project (that will come
next).

I'm not yet sure if the program should use Camel (our mail library) or
not yet -- we'll have to figure that out as we go.  Camel can help with
the authentication and security parts of the protocol, but if we can get
by with just simple authentication then maybe we won't need Camel yet.

But the program MUST utilize GLib's facilities as much as possible,
including APIs like GSocketClient, GTlsConnection, and GDataInputStream,
as these classes will be used in the final integration with Evolution.

Once this phase of the project is working, the next phases will be to
write a Sieve language parser and then build a graphical editing tool
for Sieve scripts, which will utilize the ManageSieve client you'll be
writing.  I don't know how long each phase will take through, so those
may be projects for other students.

Hope this is helpful.

Matthew Barnes



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]