SieveManager#

OpenSSF best practices badge

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.

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

Warning

SieveManager is a work in progress. The command-line interface, the configuration semantics, and the Python API are subject to change. And it’s probably buggy.

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-SHA-(1|224|256|384|512)

    • SCRAM-SHA-(1|224|256|384|512)-PLUS [1]

    • SCRAM-SHA3-512

    • SCRAM-SHA3-512-PLUS [1]

  • TLS client authentication

  • Proxy authentication

  • Tab-completion

  • Scriptable

  • Sieve scripts can be backed up automatically

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

  • Supports TLS Server Name Indication

  • Supports giving IPv6 addresses on the command-line