ietf-mta-filters
[Top] [All Lists]

sieve protocol

1999-09-28 08:42:18
The Cyrus Imapd currently gives two options of where to store users'
sieve scripts. In the user's home directory or within the /usr/sieve
directory on the Cyrus Imapd server. Since Cyrus is a closed system
this presents the problem of how do users get their sieve scripts onto 
the server. We have come up with the protocol listed below and plan to 
release code based on it in the next version of Cyrus. We hope in the
future for users to submit their scripts to an ACAP server but we need 
a solution until that is possible.

Some others have expressed interest in this. Do people think it would be
worthwhile to write this protocol up formally?

Of course any comments or suggestions on the protocol would be greatly 
appreciated.


Thanks,
Tim


----------------------------------------------------------------------
This is a protocol for getting user sieve scripts onto the server. The
requirments for this process are:

-the user must authenticate to gain access
-only valid sieve scripts may be accepted

Additional "features" provided:

-the ability to manage multiple scripts on the server with zero or one
of them being the "active" sieve script


Types
-----

This is a line oriented protocol much like [IMAP] or [ACAP]. There
are two types: ATOMS and strings. Strings may be quoted or
literal. See [ACAP] for detailed descriptions.



Commands
--------

AUTHENTICATE <string (mechanism)> <string(initial data)> EOL

SASL authentication. Initial data is base64 encoded. The server
replies with a OK or NO response, or a string base64 encoded followed
by an EOL. Client then replies with a string base64 encoded followed
by an EOL and the procedure is repeated.


NOOP EOL

No side affects. OK, NO replies


LOGOUT EOL

Logout of server. OK, NO replies


GETSCRIPT <sievename> EOL

returns: <string (data of script)> EOL
Get the script with name 'sievename' from the server. OK, NO replies


PUTSCRIPT <sievename> <string (data)> EOL

Puts 'sievename' with data 'data' onto the server if possible. OK, NO replies


SETACTIVE <sievename> EOL

Set the script with the name 'sievename' as the active script. Any
other script that was active is no longer. OK, NO replies


DELETESCRIPT <sievename> EOL

Delete the script with 'sievename'. OK or NO replies


LISTSCRIPTS EOL

returns zero or more: <tag> <sivename> EOL
where the active script has a '*' at the end of it's name
OK or NO replies




<sievename> is a string where only certain characters are
allowed and it must be at least 1 character long


<Prev in Thread] Current Thread [Next in Thread>