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 is a line-oriented protocol much like [IMAP] or [ACAP]. There
are two types: ATOMS and strings, all space ('SP') separated. 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 an OK or NO response, or a base64 string followed
by an EOL. Client then replies with a base64 string followed
by an EOL, and the procedure is repeated.
- NOOP EOL
-
No side effects. Valid replies: OK or NO.
- LOGOUT EOL
-
Logout: terminates connection. Valid replies: OK or NO.
- 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. Valid
replies: OK or NO.
- PUTSCRIPT SP sievename SP string EOL
-
Puts sievename with data data onto the server if
possible. Valid replies: OK or NO.
- SETACTIVE SP sievename EOL
-
Set the script with the name sievename as the active
script. Any other script that was active is no longer. Valid replies: OK or NO.
- DELETESCRIPT SP sievename EOL
-
Delete the script with sievename. Valid replies: OK or NO.
- LISTSCRIPTS EOL
-
Returns zero or more: sievename EOL.
Where the active script has a '*' at the end of its name.
Valid replies: OK or NO.