File: sieve-manage.el.html

This library provides an elisp API for the managesieve network protocol.

It uses the SASL library for authentication, which means it supports DIGEST-MD5, CRAM-MD5, SCRAM-MD5, NTLM, PLAIN and LOGIN methods. STARTTLS is not well tested, but should be easy to get to work if someone wants.

The API should be fairly obvious for anyone familiar with the managesieve protocol, interface functions include:

sieve-manage-open open connection to managesieve server, returning a buffer to be used by all other API functions.

sieve-manage-opened check if a server is open or not

sieve-manage-close close a server connection.

sieve-manage-listscripts sieve-manage-deletescript sieve-manage-getscript performs managesieve protocol actions

and that's it. Example of a managesieve session in *scratch*:

(with-current-buffer (sieve-manage-open "mail.example.com")
  (sieve-manage-authenticate)
  (sieve-manage-listscripts))

=> ((active . "main") "vacation")

References:

draft-martin-managesieve-02.txt,
"A Protocol for Remotely Managing Sieve Scripts",
by Tim Martin.

Release history:

2001-10-31 Committed to Oort Gnus.
2002-07-27 Added DELETESCRIPT. Suggested by Ned Ludd.
2002-08-03 Use SASL library.
2013-06-05 Enabled STARTTLS support, fixed bit rot.

Defined variables (9)

sieve-manage-authenticator-alistDefinition of authenticators.
sieve-manage-authenticatorsPriority of authenticators to consider when authenticating to server.
sieve-manage-client-eolThe EOL string we send to the server.
sieve-manage-default-portDefault port number or service name for managesieve protocol.
sieve-manage-default-streamDefault stream type to use for ‘sieve-manage’.
sieve-manage-ignore-starttlsIgnore STARTTLS even if STARTTLS capability is provided.
sieve-manage-logName of buffer for managesieve session trace.
sieve-manage-server-eolThe EOL string sent from the server.
sieve-manage-stateManagesieve state.

Defined functions (35)

sieve-manage--append-to-log(&rest ARGS)
sieve-manage--error(FORMAT-STRING &rest ARGS)
sieve-manage--message(FORMAT-STRING &rest ARGS)
sieve-manage-authenticate(&optional BUFFER)
sieve-manage-capability(&optional NAME VALUE BUFFER)
sieve-manage-close(&optional BUFFER)
sieve-manage-cram-md5-auth(BUFFER)
sieve-manage-cram-md5-p(BUFFER)
sieve-manage-decode(OCTETS &optional BUFFER)
sieve-manage-deletescript(NAME &optional BUFFER)
sieve-manage-digest-md5-auth(BUFFER)
sieve-manage-digest-md5-p(BUFFER)
sieve-manage-encode(UTF8-STRING)
sieve-manage-erase(&optional P BUFFER)
sieve-manage-getscript(NAME OUTPUT-BUFFER &optional BUFFER)
sieve-manage-havespace(NAME SIZE &optional BUFFER)
sieve-manage-listscripts(&optional BUFFER)
sieve-manage-login-auth(BUFFER)
sieve-manage-login-p(BUFFER)
sieve-manage-no-p(RSP)
sieve-manage-ntlm-auth(BUFFER)
sieve-manage-ntlm-p(BUFFER)
sieve-manage-ok-p(RSP)
sieve-manage-open(SERVER &optional PORT STREAM AUTH BUFFER)
sieve-manage-open-server(SERVER PORT &optional STREAM BUFFER)
sieve-manage-opened(&optional BUFFER)
sieve-manage-parse-capability(STR)
sieve-manage-plain-auth(BUFFER)
sieve-manage-plain-p(BUFFER)
sieve-manage-putscript(NAME CONTENT &optional BUFFER)
sieve-manage-scram-md5-auth(BUFFER)
sieve-manage-scram-md5-p(BUFFER)
sieve-manage-send(CMDSTR)
sieve-manage-setactive(NAME &optional BUFFER)
sieve-sasl-auth(BUFFER MECH)

Defined faces (0)