Vnd.dovecot.duplicate Extension

Relevant specifications
=======================

	doc/rfc/spec-bosch-sieve-duplicate.txt

Description
===========

The vnd.dovecot.duplicate extension augments the Sieve filtering implementation
with a test to verify whether the evaluated string value was seen before in an
earlier execution of the Sieve script. The main application for this new test is
detecting and handling duplicate message deliveries, e.g. as caused by
mailinglists when people reply both to the mailinglist and the user directly.

This extension is specific to the Pigeonhole Sieve implementation for the
Dovecot Secure IMAP server. It will therefore most likely not be supported by
web interfaces or GUI-based Sieve editors.

Refer to doc/rfc/spec-bosch-sieve-duplicate.txt for a specification of the Sieve
language extension.

Implementation Status
---------------------

The "vnd.dovecot.duplicate" Sieve language extension is vendor-specific with
draft status and its implementation for Pigeonhole is experimental, which means
that the language extensions are still subject to change and that the current
implementation is not thoroughly tested.

Configuration
=============

The "vnd.dovecot.duplicate" extension is not enabled by default and thus it
needs to be enabled explicitly by adding it to the `sieve_extensions' or the
`sieve_global_extensions' setting. 

The following configuration settings are used:

sieve_duplicate_default_period = 12h
sieve_duplicate_max_period = 2d
  These options respectively specify the default and the maximum value for the
  period after which tracked values are purged from the duplicate tracking
  database. The period is specified in s(econds), unless followed by a d(ay),
  h(our) or m(inute) specifier character.

Example
=======

plugin {
  sieve = ~/.dovecot.sieve

  sieve_extensions = +vnd.dovecot.duplicate

  sieve_duplicate_default_period = 1h
	sieve_duplicate_max_period = 1d
}
