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
Additional features provided:
- the user must authenticate to gain access, preferably via a
secure SASL mechanism.
- only valid sieve scripts may be accepted
- the ability to manage multiple scripts on the server with zero or one
of them being the "active" sieve script
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.
- 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