Protocol for Sieve script exchange
Please note that this document is not authoritative and may well be out
of date, you should look at specs.html for the
current authoritative document for the MANAGESIEVE protocol.
Note: This is not a standards track protocol. If you decide to base
a program upon it you have been warned.
This is a simple text-based protocol for getting user sieve scripts
onto the (presumably sealed) IMAP server. The requirements for this
process are:
- the user must authenticate to gain access, preferably via a
secure SASL mechanism.
- 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 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.
sievename is a string where only certain characters are
allowed and it must be at least 1 character long.
Commands
- AUTHENTICATE SP string [SP string] EOL
-
SASL authentication; the parameters are the mechanism and optionally
the initial data. 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, terminates connection. OK, NO replies.
- GETSCRIPT SP sievename EOL
-
The parameter is the name of the requested script.
Returns: string EOL containing the script data.
Get the script with name sievename from the server. OK, NO replies
- PUTSCRIPT SP sievename SP string EOL
-
Puts sievename with data data onto the server if
possible. OK, NO replies.
- SETACTIVE SP 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 SP sievename EOL
-
Delete the script with sievename. OK or NO replies.
- LISTSCRIPTS EOL
-
returns zero or more: sievename EOL.
where the active script has a '*' at the end of it's name
OK or NO replies