1+ ##
2+ ## Settings for the Sieve interpreter
3+ ##
4+
5+ # Do not forget to enable the Sieve plugin in 15-lda.conf and 20-lmtp.conf
6+ # by adding it to the respective mail_plugins= settings.
7+
8+ # The Sieve interpreter can retrieve Sieve scripts from several types of
9+ # locations. The default `file' location type is a local filesystem path
10+ # pointing to a Sieve script file or a directory containing multiple Sieve
11+ # script files. More complex setups can use other location types such as
12+ # `ldap' or `dict' to fetch Sieve scripts from remote databases.
13+ #
14+ # All settings that specify the location of one ore more Sieve scripts accept
15+ # the following syntax:
16+ #
17+ # location = [<type>:]path[;<option>[=<value>][;...]]
18+ #
19+ # If the type prefix is omitted, the script location type is 'file' and the
20+ # location is interpreted as a local filesystem path pointing to a Sieve script
21+ # file or directory. Refer to Pigeonhole wiki or INSTALL file for more
22+ # information.
23+
24+ plugin {
25+ # The location of the user's main Sieve script or script storage. The LDA
26+ # Sieve plugin uses this to find the active script for Sieve filtering at
27+ # delivery. The "include" extension uses this location for retrieving
28+ # :personal" scripts. This is also where the ManageSieve service will store
29+ # the user's scripts, if supported.
30+ #
31+ # Currently only the 'file:' location type supports ManageSieve operation.
32+ # Other location types like 'dict:' and 'ldap:' can currently only
33+ # be used as a read-only script source ().
34+ #
35+ # For the 'file:' type: use the ';active=' parameter to specify where the
36+ # active script symlink is located.
37+ # For other types: use the ';name=' parameter to specify the name of the
38+ # default/active script.
39+ #sieve = file:~/sieve;active=~/.dovecot.sieve
40+ sieve = file:~/mail/%d/%n/sieve;active=~/mail/%d/%n/dovecot.sieve
41+
42+ # The default Sieve script when the user has none. This is the location of a
43+ # global sieve script file, which gets executed ONLY if user's personal Sieve
44+ # script doesn't exist. Be sure to pre-compile this script manually using the
45+ # sievec command line tool if the binary is not stored in a global location.
46+ # --> See sieve_before for executing scripts before the user's personal
47+ # script.
48+ #sieve_default = /var/lib/dovecot/sieve/default.sieve
49+
50+ # The name by which the default Sieve script (as configured by the
51+ # sieve_default setting) is visible to the user through ManageSieve.
52+ #sieve_default_name =
53+
54+ # Location for ":global" include scripts as used by the "include" extension.
55+ #sieve_global =
56+
57+ # The location of a Sieve script that is run for any message that is about to
58+ # be discarded; i.e., it is not delivered anywhere by the normal Sieve
59+ # execution. This only happens when the "implicit keep" is canceled, by e.g.
60+ # the "discard" action, and no actions that deliver the message are executed.
61+ # This "discard script" can prevent discarding the message, by executing
62+ # alternative actions. If the discard script does nothing, the message is
63+ # still discarded as it would be when no discard script is configured.
64+ #sieve_discard =
65+
66+ # Location Sieve of scripts that need to be executed before the user's
67+ # personal script. If a 'file' location path points to a directory, all the
68+ # Sieve scripts contained therein (with the proper `.sieve' extension) are
69+ # executed. The order of execution within that directory is determined by the
70+ # file names, using a normal 8bit per-character comparison.
71+ #
72+ # Multiple script locations can be specified by appending an increasing number
73+ # to the setting name. The Sieve scripts found from these locations are added
74+ # to the script execution sequence in the specified order. Reading the
75+ # numbered sieve_before settings stops at the first missing setting, so no
76+ # numbers may be skipped.
77+ #sieve_before = /var/lib/dovecot/sieve.d/
78+ #sieve_before2 = ldap:/etc/sieve-ldap.conf;name=ldap-domain
79+ #sieve_before3 = (etc...)
80+
81+ # Identical to sieve_before, only the specified scripts are executed after the
82+ # user's script (only when keep is still in effect!). Multiple script
83+ # locations can be specified by appending an increasing number.
84+ #sieve_after =
85+ #sieve_after2 =
86+ #sieve_after2 = (etc...)
87+
88+ # Which Sieve language extensions are available to users. By default, all
89+ # supported extensions are available, except for deprecated extensions or
90+ # those that are still under development. Some system administrators may want
91+ # to disable certain Sieve extensions or enable those that are not available
92+ # by default. This setting can use '+' and '-' to specify differences relative
93+ # to the default. For example `sieve_extensions = +imapflags' will enable the
94+ # deprecated imapflags extension in addition to all extensions were already
95+ # enabled by default.
96+ sieve_extensions = +notify +imapflags
97+
98+ # Which Sieve language extensions are ONLY available in global scripts. This
99+ # can be used to restrict the use of certain Sieve extensions to administrator
100+ # control, for instance when these extensions can cause security concerns.
101+ # This setting has higher precedence than the `sieve_extensions' setting
102+ # (above), meaning that the extensions enabled with this setting are never
103+ # available to the user's personal script no matter what is specified for the
104+ # `sieve_extensions' setting. The syntax of this setting is similar to the
105+ # `sieve_extensions' setting, with the difference that extensions are
106+ # enabled or disabled for exclusive use in global scripts. Currently, no
107+ # extensions are marked as such by default.
108+ sieve_global_extensions = +vnd.dovecot.pipe +vnd.dovecot.environment
109+
110+ # The Pigeonhole Sieve interpreter can have plugins of its own. Using this
111+ # setting, the used plugins can be specified. Check the Dovecot wiki
112+ # (wiki2.dovecot.org) or the pigeonhole website
113+ # (http://pigeonhole.dovecot.org) for available plugins.
114+ # The sieve_extprograms plugin is included in this release.
115+ sieve_plugins = sieve_imapsieve sieve_extprograms
116+
117+ sieve_pipe_bin_dir = /etc/dovecot/sieve
118+
119+ # The maximum size of a Sieve script. The compiler will refuse to compile any
120+ # script larger than this limit. If set to 0, no limit on the script size is
121+ # enforced.
122+ #sieve_max_script_size = 1M
123+
124+ # The maximum number of actions that can be performed during a single script
125+ # execution. If set to 0, no limit on the total number of actions is enforced.
126+ #sieve_max_actions = 32
127+
128+ # The maximum number of redirect actions that can be performed during a single
129+ # script execution. If set to 0, no redirect actions are allowed.
130+ #sieve_max_redirects = 4
131+
132+ # The maximum number of personal Sieve scripts a single user can have. If set
133+ # to 0, no limit on the number of scripts is enforced.
134+ # (Currently only relevant for ManageSieve)
135+ #sieve_quota_max_scripts = 0
136+
137+ # The maximum amount of disk storage a single user's scripts may occupy. If
138+ # set to 0, no limit on the used amount of disk storage is enforced.
139+ # (Currently only relevant for ManageSieve)
140+ #sieve_quota_max_storage = 0
141+
142+ # The primary e-mail address for the user. This is used as a default when no
143+ # other appropriate address is available for sending messages. If this setting
144+ # is not configured, either the postmaster or null "<>" address is used as a
145+ # sender, depending on the action involved. This setting is important when
146+ # there is no message envelope to extract addresses from, such as when the
147+ # script is executed in IMAP.
148+ #sieve_user_email =
149+
150+ # The path to the file where the user log is written. If not configured, a
151+ # default location is used. If the main user's personal Sieve (as configured
152+ # with sieve=) is a file, the logfile is set to <filename>.log by default. If
153+ # it is not a file, the default user log file is ~/.dovecot.sieve.log.
154+ #sieve_user_log =
155+
156+ # Specifies what envelope sender address is used for redirected messages.
157+ # The following values are supported for this setting:
158+ #
159+ # "sender" - The sender address is used (default).
160+ # "recipient" - The final recipient address is used.
161+ # "orig_recipient" - The original recipient is used.
162+ # "user_email" - The user's primary address is used. This is
163+ # configured with the "sieve_user_email" setting. If
164+ # that setting is unconfigured, "user_mail" is equal to
165+ # "recipient".
166+ # "postmaster" - The postmaster_address configured for the LDA.
167+ # "<user@domain>" - Redirected messages are always sent from user@domain.
168+ # The angle brackets are mandatory. The null "<>" address
169+ # is also supported.
170+ #
171+ # This setting is ignored when the envelope sender is "<>". In that case the
172+ # sender of the redirected message is also always "<>".
173+ #sieve_redirect_envelope_from = sender
174+
175+ ## TRACE DEBUGGING
176+ # Trace debugging provides detailed insight in the operations performed by
177+ # the Sieve script. These settings apply to both the LDA Sieve plugin and the
178+ # IMAPSIEVE plugin.
179+ #
180+ # WARNING: On a busy server, this functionality can quickly fill up the trace
181+ # directory with a lot of trace files. Enable this only temporarily and as
182+ # selective as possible.
183+
184+ # The directory where trace files are written. Trace debugging is disabled if
185+ # this setting is not configured or if the directory does not exist. If the
186+ # path is relative or it starts with "~/" it is interpreted relative to the
187+ # current user's home directory.
188+ #sieve_trace_dir =
189+
190+ # The verbosity level of the trace messages. Trace debugging is disabled if
191+ # this setting is not configured. Possible values are:
192+ #
193+ # "actions" - Only print executed action commands, like keep,
194+ # fileinto, reject and redirect.
195+ # "commands" - Print any executed command, excluding test commands.
196+ # "tests" - Print all executed commands and performed tests.
197+ # "matching" - Print all executed commands, performed tests and the
198+ # values matched in those tests.
199+ #sieve_trace_level =
200+
201+ # Enables highly verbose debugging messages that are usually only useful for
202+ # developers.
203+ #sieve_trace_debug = no
204+
205+ # Enables showing byte code addresses in the trace output, rather than only
206+ # the source line numbers.
207+ #sieve_trace_addresses = no
208+ }
0 commit comments