Sieve Extension: Copying Without Side Effects
Extracted elements (7)
The extension is motivated by the difficulty of generating Sieve code that correctly expresses "copy" semantics without it: such code grows unwieldy because it must track the state that the implicit "keep" would have had. The ":copy" parameter allows direct expression of copy semantics.
Without ":copy", users who want to file or forward an extra copy of a message while preserving normal delivery must use an explicit "keep" command. However, an explicit "keep" is a poor substitute for the implicit keep when more processing follows, because subsequent "discard" commands cannot cancel an explicit "keep", leading to unintended inbox delivery.
If the optional ":copy" keyword is specified with "fileinto" or "redirect", the tagged command does not cancel the implicit "keep". Instead, it merely files or redirects a copy in addition to whatever else is happening to the message.
Organizations that wish to monitor their users' e-mail traffic must familiarize themselves with local data protection laws before creating stores of old e-mail traffic without the knowledge or consent of senders or intended recipients. Organizations using "redirect :copy" for legal monitoring should set users' privacy expectations correctly.
The ":copy" keyword parameter can be used with the Sieve "fileinto" and "redirect" actions. When specified, it suppresses cancellation of the implicit "keep" behavior, causing the action to file or redirect a copy of the message in addition to normal delivery.
This document registers the "copy" Sieve extension capability with IANA under the Sieve extensions registry. The capability name and keyword are both "copy", with no capability arguments.
The ":copy" extension makes it easier to eavesdrop on a user's message stream without the user noticing, since an attacker with write access to Sieve scripts no longer needs to parse a script to modify it. Write access to Sieve scripts must be protected as strongly as read/write access to e-mail, for example by using secure directory protocols such as correctly parameterized LDAP over TLS.