Module Documentation

managesieve

ManageSieve (RFC 5804) client module for remotely managing Sieve Scripts.

All Sieve commands are supported by methods of the same name (in lower-case). All arguments to commands are converted to strings, except for authenticate().

class managesieve.MANAGESIEVE(host='', port=4190, use_tls=False, keyfile=None, certfile=None)

Sieve client class.

Instantiate with: MANAGESIEVE(host [, port])

Parameters:
  • host – host’s name (default: localhost)
  • port – port number (default: standard Sieve port).
  • use_tls – switch to TLS automatically, fail if the server doesn’t support STARTTLS
  • keyfile – keyfile to use for TLS (optional)
  • certfile – certfile to use for TLS (optional)
exception abort

Service errors - close and retry

authenticate(mechanism, *authobjects)

Authenticate to the server.

Parameters:
  • mechanism (str) – authentication mechanism to use
  • authobjects – authentication data for this mechanism
Returns:

response (OK, NO, BYE)

capability()

Issue a CAPABILITY command and return the result.

As a side-effect, on succes these attributes are (re)set:

  • capabilities (list of strings)
  • loginmechs (list of strings)
  • implementation (string)
  • supports_tls (boolean)
Returns:tuple(response, capabilities) – If response is OK, capabilities is a list of strings.
deletescript(scriptname)

Delete a scripts at the server.

Parameters:scriptname (str) – name of script to be deleted
Returns:response (OK, NO, BYE)
exception error

Logical errors - debug required

getscript(scriptname)

Get a script from the server.

Parameters:scriptname (str) – name of script to be retrieved
Returns:tuple(response, str) – if response is OK, str is the script content.
havespace(scriptname, size)

Query the server for available space.

Parameters:
  • scriptname (str) – name of script to XXX
  • size (int) – XXX
Returns:

response (OK, NO, BYE)

listscripts()

Get a list of scripts on the server.

Returns:tuple(response, [data]) – if response is OK, data is a list of (scriptname, active) tuples.
login(auth, user, password)

Authenticate to the Sieve server using the best mechanism available.

Returns:response (OK, NO, BYE)
logout()

Terminate connection to server.

Returns:response (OK, NO, BYE)
putscript(scriptname, scriptdata)

Put a script onto the server.

Parameters:
  • scriptname (str) – name of script to be retrieved
  • scriptdata (str) – script content
Returns:

response (OK, NO, BYE)

setactive(scriptname)

Mark a script as the ‘active’ one.

Parameters:scriptname (str) – name of script to be marked active
Returns:response (OK, NO, BYE)
starttls(keyfile=None, certfile=None)

Puts the connection to the SIEVE server into TLS mode.

If the server supports TLS, this will encrypt the rest of the SIEVE session. If you provide the keyfile and certfile parameters, the identity of the SIEVE server and client can be checked. This, however, depends on whether the socket module really checks the certificates.