README.rst 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. ############
  2. SieveManager
  3. ############
  4. .. image:: https://odkr.codeberg.page/sievemgr/_static/coverage.svg
  5. :target: https://odkr.codeberg.page/sievemgr/_static/coverage.html
  6. :alt: Coverage data
  7. .. image:: https://www.bestpractices.dev/projects/8336/badge
  8. :target: https://www.bestpractices.dev/en/projects/8336
  9. :alt: OpenSSF best practices badge
  10. Sieve is a programming language for filtering email. Sieve scripts are
  11. typically run by the mail server when mail is delivered to an inbox,
  12. so they need to be managed remotely.
  13. SieveManager is a command-line client for uploading, downloading,
  14. and managing remote Sieve scripts using the ManageSieve protocol.
  15. It can also be used as a Python module.
  16. **WARNING**: The command-line interface, the configuration semantics,
  17. and the Python API may still change.
  18. .. _Sieve: http://sieve.info
  19. .. _`home page`: https://odkr.codeberg.page/sievemgr
  20. Example
  21. =======
  22. Upload and activate a Sieve script:
  23. .. code:: none
  24. $ sievemgr user@imap.foo.example
  25. user@imap.foo.example's password: <password>
  26. sieve://user@imap.foo.example> put script.sieve
  27. sieve://user@imap.foo.example> activate script.sieve
  28. In Python:
  29. .. code:: python
  30. from sievemgr import SieveManager
  31. with SieveManager('imap.foo.example') as mgr:
  32. mgr.authenticate('user', 'password')
  33. with open('sieve.script', 'br') as script:
  34. mgr.putscript(script, 'sieve.script')
  35. mgr.setactive('sieve.script')
  36. Features
  37. ========
  38. * Complies fully with RFC 5804 (ManageSieve protocol)
  39. * Login can be automated with:
  40. * Password managers
  41. * GnuPG-encrypted password files
  42. * ``sieve.cf``
  43. * ``.netrc``
  44. * Password-based authentication with:
  45. * CRAM-MD5
  46. * LOGIN
  47. * PLAIN
  48. * SCRAM-\* and SCRAM-\*-PLUS [#untested]_ with
  49. * SHA-1
  50. * SHA-2-234
  51. * SHA-2-256
  52. * SHA-2-384
  53. * SHA-2-512
  54. * SHA-3-512
  55. * TLS client authentication
  56. * Proxy authentication
  57. * Tab-completion
  58. * Scriptable
  59. * Emacs-like backup of scripts
  60. * Checks whether TLS certificates have been revoked
  61. (using lightweight OCSP)
  62. * Supports TLS Server Name Indication
  63. * Supports giving IPv6 addresses on the command-line
  64. .. [#untested] SCRAM-\*-PLUS authentication is untested.
  65. Documentation
  66. =============
  67. Use **sievemgr -h**, type "help" in the SieveManager shell,
  68. or see the `home page`_.
  69. Contact
  70. =======
  71. Home page:
  72. https://odkr.codeberg.page/sievemgr
  73. Issue tracker:
  74. https://github.com/odkr/sievemgr/issues
  75. Source code (primary):
  76. https://codeberg.org/odkr/sievemgr
  77. Source code (secondary):
  78. https://notabug.org/odkr/sievemgr
  79. License
  80. =======
  81. Copyright 2023 and 2024 Odin Kroeger
  82. SieveManager is free software: you can redistribute it and/or modify
  83. it under the terms of the GNU General Public License as published by
  84. the FreeSoftware Foundation, either version 3 of the License, or (at
  85. your option) any later version.
  86. SieveManager is distributed in the hope that it will be useful,
  87. but WITHOUT ANY WARRANTY; without even the implied warranty of
  88. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  89. See the GNU General Public License for more details.
  90. You should have received a copy of the GNU General Public License
  91. along with SieveManager. If not, see <https://www.gnu.org/licenses/>.