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 _______________________________________________ evolution-hackers mailing list evolution-hackers@gnome.org To change your list options or unsubscribe, visit ... https://mail.gnome.org/mailman/listinfo/evolution-hackers