SieveManager

OpenSSF best practices badge

Sieve is a programming language for filtering email. Sieve scripts are typically run by the mail server when mail is delivered to an inbox, so they need to be managed remotely.

SieveManager is a command-line client for uploading, downloading, and managing remote Sieve scripts using the ManageSieve protocol. It can also be used as a Python module.

Warning

The command-line interface, the configuration semantics, and the Python API may still change.

Example

Upload and activate a Sieve script:

$ sievemgr user@imap.foo.example
user@imap.foo.example's password: <password>
sieve://user@imap.foo.example> put script.sieve
sieve://user@imap.foo.example> activate script.sieve

In Python:

from sievemgr import SieveManager
with SieveManager('imap.foo.example') as mgr:
    mgr.authenticate('user', 'password')
    with open('sieve.script', 'br') as script:
        mgr.putscript(script, 'sieve.script')
    mgr.setactive('sieve.script')

Features

  • Complies fully with RFC 5804 (ManageSieve protocol)

  • Login can be automated with:

  • Password-based authentication with:

    • CRAM-MD5

    • LOGIN

    • PLAIN

    • SCRAM-* and SCRAM-*-PLUS [1] with

      • SHA-1

      • SHA-2-234

      • SHA-2-256

      • SHA-2-384

      • SHA-2-512

      • SHA-3-512

  • TLS client authentication

  • Proxy authentication

  • Tab-completion

  • Scriptable

  • Emacs-like backup of scripts

  • Checks whether TLS certificates have been revoked (using lightweight OCSP)

  • Supports TLS Server Name Indication

  • Supports giving IPv6 addresses on the command-line