Re: [Evolution-hackers] Re: [Evolution] Sieve support



On Thu, 2003-07-31 at 17:53, Not Zed wrote:

I'm not sure it really makes sense to copy any provider, or to implement
it as a provider rather.  Providers provide objects to retrieve messages
(stores), and/or send them (transports).  It really sounds more like a
service provided on-top of a provider.  However it's done, it should

Yes, it's a service provided on top of a provider and that
camel-provider I am planning to build is only the low-level interface
for another more high-level interface (library) which I hope will be
build during the development of Exchange-script support by Ximian.


probably integrate at least in some way with the existing filter stuff
(even if that requires changes), e.g. through common interfaces/abstract
superclasses, etc.

Indeed, thats why I decided to wait for the Exchange-filter support to
become finished. I am hoping that this abstraction-layer will be build
for the Exchange-filters in a way that it can be reused for other
scripting facilities -and languages.

Only being very rough here trying to describe what I mean ... but
basically some sort of OO design approach is desirable.


Does sieve go over its own tcp connection then?  (sorry i haven't really
looked into it for years).

Yes, well..

Sieve is only a programming language and has an interpreter deployed on
the IMAP-server. There is, however, also a protocol (and a daemon) for
deploying sieve-scripts. This protocol looks a lot like POP3:

- It connects on port 2000

- It  uses SASL authentication (I still have to figure out how to do
this correctly on the clientside)

C: AUTHENTICATE "type" "..."

- It has commands like
C: LISTSCRIPTS
S: "ScriptName"
S: OK
C: GETSCRIPT "ScriptName"
S: ...
S: OK
C: PUTSCRIPT "ScriptName"
C: if (..) {
C: }
S: OK
C: LOGOFF

So basically that means sending stuff and getting stuff like with POP3
;)

I guess that basic idea is sound, although ... the 'library' could just
be some camel objects, if you want it well integrated.  And that could
be implemented more or less independent of whatever front-end api's are
exposed.  So it would be a good place to start.

I'd probably suggest in order, something like ...
 - a more or less independent impl for handling sieve protocol
 - some abstraction for rules, even if they're just opqaue text
 - some api on CamelStore to get access to the rules on a given server

Indeed

[CUT]

-- 
Philip Van Hoof, Software Developer @ Cronos
home: me at freax dot org
work: Philip dot VanHoof at cronos dot be
http://www.freax.be, http://www.freax.eu.org




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