SieveManager

Coverage data 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 and Python module for uploading, downloading, and managing remote Sieve scripts using the ManageSieve protocol.

It aims to be convenient, secure, and portable, and respects Unix as well as Python conventions.

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', mode='br') as script:
        mgr.putscript(script, 'sieve.script')
    mgr.setactive('sieve.script')

Features

  • Fully implements RFC 5804 (ManageSieve protocol)

  • Login can be automated using:

  • 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

  • Powerful tab-completion

  • Highly scriptable

  • Emacs-like backup of scripts

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

  • Supports giving IPv6 addresses on the command-line