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.