1# things inside of C comments get copied to the manpage
2# things starting with # are ignored
3
4/* .\" -*- nroff -*-
5.TH IMAPD.CONF 5 "Project Cyrus" CMU
6.\"
7.\" Copyright (c) 1994-2008 Carnegie Mellon University.  All rights reserved.
8.\"
9.\" Redistribution and use in source and binary forms, with or without
10.\" modification, are permitted provided that the following conditions
11.\" are met:
12.\"
13.\" 1. Redistributions of source code must retain the above copyright
14.\"    notice, this list of conditions and the following disclaimer.
15.\"
16.\" 2. Redistributions in binary form must reproduce the above copyright
17.\"    notice, this list of conditions and the following disclaimer in
18.\"    the documentation and/or other materials provided with the
19.\"    distribution.
20.\"
21.\" 3. The name "Carnegie Mellon University" must not be used to
22.\"    endorse or promote products derived from this software without
23.\"    prior written permission. For permission or any legal
24.\"    details, please contact
25.\"      Carnegie Mellon University
26.\"      Center for Technology Transfer and Enterprise Creation
27.\"      4615 Forbes Avenue
28.\"      Suite 302
29.\"      Pittsburgh, PA  15213
30.\"      (412) 268-7393, fax: (412) 268-7395
31.\"      innovation@andrew.cmu.edu
32.\"
33.\" 4. Redistributions of any form whatsoever must retain the following
34.\"    acknowledgment:
35.\"    "This product includes software developed by Computing Services
36.\"     at Carnegie Mellon University (http://www.cmu.edu/computing/)."
37.\"
38.\" CARNEGIE MELLON UNIVERSITY DISCLAIMS ALL WARRANTIES WITH REGARD TO
39.\" THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
40.\" AND FITNESS, IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY BE LIABLE
41.\" FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
42.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
43.\" AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
44.\" OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
45
46.SH NAME
47imapd.conf \- IMAP configuration file
48.SH DESCRIPTION
49\fB/etc/imapd.conf\fR
50is the configuration file for the Cyrus IMAP server.  It defines
51local parameters for IMAP.
52.PP
53Each line of the \fB/etc/imapd.conf\fR file has the form
54.IP
55\fIoption\fR: \fIvalue\fR
56.PP
57where \fIoption\fR is the name of the configuration option being set
58and \fIvalue\fR is the value that the configuration option is being
59set to.
60.PP
61Although there is no limit to the length of a line, a ``\\''
62(backslash) character may be used as the last character on a line to
63force it to continue on the next one.  No additional whitespace is
64inserted before or after the ``\\''.  Note that a line that is split
65using ``\\'' character(s) is still considered a single line.
66
67For example
68.IP
69\fIoption\fR:\\
70.br
71.in +1
72\fIvalue\fR1 \fIvalue\fR2 \\
73.br
74.in +1
75\fIvalue\fR3
76.PP
77is equivalent to
78.IP
79\fIoption\fR: \fIvalue\fR1 \fIvalue\fR2   \fIvalue\fR3
80.PP
81Blank lines and lines beginning with ``#'' are ignored.
82.PP
83For boolean and enumerated options, the values ``yes'', ``on'', ``t'',
84``true'' and ``1'' turn the option on, the values ``no'', ``off'',
85``f'', ``false'' and ``0'' turn the option off.
86.PP
87Duration options take the form of a number followed by a unit, for example
88\fB32m\fR (32 minutes).  Units are \fBd\fR (days), \fBh\fR (hours), \fBm\fR
89(minutes) and \fBs\fR (seconds).  Multiple units can be combined and will
90be summed together, for example \fB1h30m\fR is equivalent to \fB90m\fR.  If
91no unit is specified, an option-specific backward-compatible default unit
92is assumed (documented on an option-by-option basis).  These are simple time
93units: 1d=24h, 1h=60m, 1m=60s (daylight savings, timezones, leap adjustments,
94etc are not considered).
95.SH FIELD DESCRIPTIONS
96.PP
97The sections below detail options that can be placed in the
98\fB/etc/imapd.conf\fR file, and show each option's default value.
99Some options have no default value, these are listed with
100``<no default>''.  Some options default to the empty string, these
101are listed with ``<none>''.
102*/
103
104# OPTIONS
105
106{ "addressbookprefix", "#addressbooks", STRING, "2.5.0" }
107/* The prefix for the addressbook mailboxes hierarchies.  The hierarchy
108   delimiter will be automatically appended.  The public addressbook
109   hierarchy will be at the toplevel of the shared namespace.  A
110   user's personal addressbook hierarchy will be a child of their Inbox. */
111
112{ "admins", "", STRING, "2.3.17" }
113/* The list of userids with administrative rights.  Separate each userid
114   with a space.  Sites using Kerberos authentication may use
115   separate "admin" instances.
116.PP
117   Note that accounts used by users should not be administrators.
118   Administrative accounts should not receive mail.  That is, if user
119   "jbRo" is a user reading mail, he should not also be in the admins line.
120   Some problems may occur otherwise, most notably the ability of
121   administrators to create top-level mailboxes visible to users,
122   but not writable by users. */
123
124{ "afspts_localrealms", NULL, STRING, "2.3.17" }
125/* The list of realms which are to be treated as local, and thus stripped
126   during identifier canonicalization (for the AFSPTS ptloader module).
127   This is different from loginrealms in that it occurs later in the
128   authorization process (as the user id is canonified for PTS lookup) */
129
130{ "afspts_mycell", NULL, STRING, "2.3.17" }
131/* Cell to use for AFS PTS lookups.  Defaults to the local cell. */
132
133{ "allowallsubscribe", 0, SWITCH, "2.3.17" }
134/* Allow subscription to nonexistent mailboxes.  This option is
135   typically used on backend servers in a Murder so that users can
136   subscribe to mailboxes that don't reside on their "home" server.
137   This option can also be used as a workaround for IMAP clients which
138   don't play well with nonexistent or unselectable mailboxes (e.g.,
139   Microsoft Outlook). */
140
141{ "allowanonymouslogin", 0, SWITCH, "2.3.17" }
142/* Permit logins by the user "anonymous" using any password.  Also
143   allows use of the SASL ANONYMOUS mechanism. */
144
145{ "allowapop", 1, SWITCH, "2.3.17" }
146/* Allow use of the POP3 APOP authentication command.
147.PP
148  Note that this command requires that SASL is compiled with APOP
149  support, that the plaintext passwords are available in a SASL auxprop
150  backend (e.g., sasldb), and that the system can provide enough entropy
151  (e.g., from /dev/urandom) to create a challenge in the banner. */
152
153{ "allowdeleted", 0, SWITCH, "3.1.8" }
154/* Allow access to deleted and expunged data via vendor.cmu-* access */
155
156{ "allownewnews", 0, SWITCH, "2.3.17" }
157/* Allow use of the NNTP NEWNEWS command.
158.PP
159  Note that this is a very expensive command and should only be
160  enabled when absolutely necessary. */
161
162{ "allowplaintext", 0, SWITCH, "3.0.0" }
163/* If enabled, allows the use of cleartext passwords on the wire.
164.PP
165  By default, the use of cleartext passwords requires a TLS/SSL
166  encryption layer to be negotiated prior to any cleartext
167  authentication mechanisms being advertised or allowed.  To require a
168  TLS/SSL encryption layer to be negotiated prior to ANY
169  authentication, see the \fItls_required\fR option. */
170
171{ "allowsetacl", 1, SWITCH, "3.1.8" }
172/* Defaults to enabled.  If disabled, disallows the use of the SETACL
173   command at all via IMAP. */
174
175{ "allowusermoves", 0, SWITCH, "2.3.17" }
176/* Allow moving user accounts (with associated meta-data) via RENAME
177   or XFER.
178.PP
179  Note that measures should be taken to make sure that the user being
180  moved is not logged in, and cannot login during the move.  Failure
181  to do so may result in the user's meta-data (seen state,
182  subscriptions, etc) being corrupted or out of date. */
183
184{ "altnamespace", 1, SWITCH, "3.0.0" }
185/* Use the alternate IMAP namespace, where personal folders reside at the
186   same level in the hierarchy as INBOX.
187.PP
188   This option ONLY applies where interaction takes place with the
189   client/user.  Currently this is limited to the IMAP protocol (imapd)
190   and Sieve scripts (lmtpd).  This option does NOT apply to admin tools
191   such as cyradm (admins ONLY), reconstruct, quota, etc., NOR does it
192   affect LMTP delivery of messages directly to mailboxes via
193   plus-addressing.  The default changed in 3.0 from off to on. */
194
195{ "altprefix", "Alt Folders", STRING, "3.0.0" }
196/* Alternative INBOX spellings that can't be accessed in altnamespace
197   otherwise go under here */
198
199{ "annotation_db", "twoskip", STRINGLIST("skiplist", "twoskip", "zeroskip"), "3.1.6" }
200/* The cyrusdb backend to use for mailbox annotations. */
201
202{ "annotation_db_path", NULL, STRING, "2.5.0" }
203/* The absolute path to the annotations db file.  If not specified,
204   will be configdirectory/annotations.db */
205
206{ "anyoneuseracl", 1, SWITCH, "2.3.17" }
207/* Should non-admin users be allowed to set ACLs for the 'anyone'
208   user on their mailboxes?  In a large organization this can cause
209   support problems, but it's enabled by default. */
210
211{ "annotation_allow_undefined", 0, SWITCH, "2.5.0" }
212/* Allow clients to store values for entries which are not
213   defined either by Cyrus or in the annotations_definitions
214   file. */
215
216{ "annotation_definitions", NULL, STRING, "2.5.0" }
217/* File containing external (third-party) annotation definitions.
218.PP
219Each line of the file specifies the properties of an annotation and
220has the following form:
221
222.IP
223\fIname\fR, \fIscope\fR, \fIattrib-type\fR, \fIproxy-type\fR,
224\fIattrib-names\fR, \fIacl\fR
225.\"
226.IP \fIname\fR 5
227is the hierarchical name as in RFC 5257 or RFC 5464 (in the latter case,
228without the leading \fB/shared\fR or \fB/private\fR).  For example,
229/vendor/acme/blurdybloop.
230.\"
231.IP \fIscope\fR 5
232specifies whether the annotation is for the \fBserver\fR, a
233\fBmailbox\fR, or a \fBmessage\fR.
234.\"
235.IP \fIattrib-type\fR 5
236.RS 5
237specifies the attribute data type, which is used only to check the
238string value passed by clients when setting annotations.  The
239\fIattrib-type\fR is one of:
240.\"
241.IP \fBstring\fR 5
242any value is accepted.
243.\"
244.IP \fBcontent-type\fR 5
245this obsolete data type, which was useful for early drafts of the standard,
246is accepted but silently translated to \fBstring\fR.
247.\"
248.IP \fBboolean\fR 5
249only the strings "true" or "false" are accepted.  Checking is
250case-insensitive but the value is forced to lowercase.
251.\"
252.IP \fBint\fR 5
253integers are accepted.
254.\"
255.IP \fBuint\fR 5
256non-negative integers are accepted.
257.\"
258.RE
259.\"
260.IP \fIproxy-type\fR 5
261specifies whether this attribute is for the \fBbackend\fR or
262\fBproxy\fR servers or both (\fBproxy_and_backend\fR)
263.\"
264.IP \fIattrib-names\fR 5
265is the space-separated list of available attributes for the
266annotation. Possible attribute names are \fBvalue.shared\fR,
267\fBvalue.priv\fR, and \fBvalue\fR (which permits both \fBvalue.priv\fR
268and \fBvalue.shared\fR).  The attribute names \fBsize\fR,
269\fBsize.shared\fR, and \fBsize.priv\fR are accepted but ignored; these
270attributes are automatically provided by the server if the corresponding
271\fBvalue\fR attribute is specified.  Some obsolete attributes, which were
272defined early drafts of the standard, are accepted and ignored with a
273warning.
274.\"
275.IP \fIextra-permissions\fR 5
276is the extra ACL permission bits required for setting this annotation, in
277standard IMAP ACL permission bit string format.  Note that this is
278in addition to the permission bits specified in RFC 5257 and RFC 5464,
279so leaving this field empty is harmless.  Note also that there is no way
280to specify that an annotation can only be set by an admin user; in
281particular the \fBa\fP permission bit does not achieve this.
282.PP
283Blank lines and lines beginning with ``#'' are ignored.
284*/
285
286{ "annotation_callout", NULL, STRING, "2.5.0" }
287/* The pathname of a callout to be used to automatically add annotations
288   or flags to a message when it is appended to a mailbox.  The path can
289   be either an executable (including a script), or a UNIX domain
290   socket.  */
291{ "annotation_callout_disable_append", 0, SWITCH, "3.1.2" }
292/* Disables annotations on append with xrunannotator */
293{ "annotation_enable_legacy_commands", 0, SWITCH, "3.1.6" }
294/* Whether to enable the legacy GETANNOTATION/SETANNOTATION commands.
295   These commands are deprecated and will be removed in the future,
296   but might be useful in the meantime for supporting old clients that
297   do not implement the RFC 5464 IMAP METADATA extension. */
298
299{ "aps_topic", NULL, STRING, "3.0.0" }
300/* Topic for Apple Push Service registration. */
301{ "aps_topic_caldav", NULL, STRING, "3.0.0" }
302/* Topic for Apple Push Service registration for CalDAV. */
303{ "aps_topic_carddav", NULL, STRING, "3.0.0" }
304/* Topic for Apple Push Service registration for CardDAV. */
305
306{ "archive_enabled", 0, SWITCH, "3.0.0" }
307/* Is archiving enabled for this server.  You also need to have an
308   archivepartition for the mailbox.  Archiving allows older email
309   to be stored on slower, cheaper disks - even within the same
310   mailbox, as distinct from partitions. */
311
312{ "archive_days", NULL, DURATION, "3.1.8", "3.1.8", "archive_after" }
313/* Deprecated in favour of \fIarchive_after\fR. */
314
315{ "archive_after", "7d", DURATION, "3.1.8" }
316/* The duration after which to move messages to the archive partition
317   if archiving is enabled.
318.PP
319   For backward compatibility, if no unit is specified, days is
320   assumed.  */
321*/
322
323{ "archive_maxsize", 1024, INT, "3.0.0" }
324/* The size in kilobytes of the largest message that won't be archived
325   immediately.  Default is 1Mb */
326
327{ "archive_keepflagged", 0, SWITCH, "3.0.0" }
328/* If set, messages with the \\Flagged system flag won't be archived,
329   provided they are smaller than \fBarchive_maxsize\fR. */
330
331# Commented out - there's no such thing as "archivepartition-name",
332# but we need this for the man page
333# { "archivepartition-name", NULL, STRING, "3.0.0" }
334/* The pathname of the archive partition \fIname\fR, corresponding to
335   spool partition \fBpartition-name\fR.  For any mailbox residing in
336   a directory on \fBpartition-name\fR, the archived messages will be
337   stored in a corresponding directory on \fBarchivepartition-name\fR.
338   Note that not every \fBpartition-name\fR option is strictly required
339   to have a corresponding \fBarchivepartition-name\fR option, but that
340   without one there's no benefit to enabling archiving. */
341
342{ "auditlog", 0, SWITCH, "2.4.0" }
343/* Should cyrus output log entries for every action taken on a message
344   file or mailboxes list entry?  It's noisy so disabled by default, but
345   can be very useful for tracking down what happened if things look strange */
346
347{ "auth_mech", "unix", STRINGLIST("unix", "pts", "krb", "krb5"), "2.3.17" }
348/* The authorization mechanism to use. */
349
350{ "autocreateinboxfolders", NULL, STRING, "2.5.0", "2.5.0", "autocreate_inbox_folders" }
351/* Deprecated in favor of \fIautocreate_inbox_folders\fR. */
352
353{ "autocreatequota", 0, INT, "2.5.0", "2.5.0", "autocreate_quota" }
354/* Deprecated in favor of \fIautocreate_quota\fR. */
355
356{ "autocreatequotamsg", -1, INT, "2.5.0", "2.5.0", "autocreate_quota_messages" }
357/* Deprecated in favor of \fIautocreate_quota_messages\fR. */
358
359{ "autosievefolders", NULL, STRING, "2.5.0", "2.5.0", "autocreate_sieve_folders" }
360/* Deprecated in favor of \fIautocreate_sieve_folders\fR. */
361
362{ "generate_compiled_sieve_script", 0, SWITCH, "2.5.0", "2.5.0", "autocreate_sieve_script_compile" }
363/* Deprecated in favor of \fIautocreate_sieve_script_compile\fR. */
364
365{ "autocreate_sieve_compiled_script", NULL, STRING, "2.5.0", "2.5.0", "autocreate_sieve_script_compiled" }
366/* Deprecated in favor of \fIautocreate_sieve_script_compiled\fR. */
367
368{ "autosubscribeinboxfolders", NULL, STRING, "2.5.0", "2.5.0", "autocreate_subscribe_folders" }
369/* Deprecated in favor of \fIautocreate_subscribe_folders\fR. */
370
371{ "autosubscribesharedfolders", NULL, STRING, "2.5.0", "2.5.0", "autocreate_subscribe_sharedfolders" }
372/* Deprecated in favor of \fIautocreate_subscribe_sharedfolders\fR. */
373
374{ "autosubscribe_all_sharedfolders", 0, SWITCH, "2.5.0", "2.5.0", "autocreate_subscribe_sharedfolders_all" }
375/* Deprecated in favor of \fIautocreate_subscribe_sharedfolders_all\fR. */
376
377# Commented out - there's no single setting "autocreate_acl",
378# but we need this for the man page
379# { "autocreate_acl", NULL, STRING, "3.2.0" }
380/* If folders are to be created by \fIautocreate_inbox_folders\fR, this
381   setting can be used to apply additional ACLs to the autocreated
382   folders.  The syntax is "autocreate_acl folder identifier rights",
383   where \fIfolder\fR must match one of the \fIautocreate_inbox_folders\fR
384   folders, \fIidentifier\fR must be a valid cyrus identifier, and
385   \fIrights\fR must be a valid cyrus rights string.  Multiple
386   identifier|rights pairs can be assigned to a single folder by providing
387   this setting multiple times.
388.PP
389   For example, "autocreate_acl Plus anyone p" would allow lmtp delivery
390   to a folder named "Plus".
391   */
392
393
394{ "autocreate_inbox_folders", NULL, STRING, "2.5.0" }
395/* If a user does not have an INBOX already, and the INBOX is to be
396   created, create the list of folders in this setting as well.
397   \fIautocreate_inbox_folders\fR is a list of INBOX's subfolders
398   separated by a "|", that are automatically created by the server
399   under the following two scenarios. Leading and trailing whitespace is
400   stripped, so "Junk | Trash" results in two folders: "Junk" and
401   "Trash".  See also the \fIxlist-flag\fR option, for setting
402   special-use flags on autocreated folders.
403.PP
404   INBOX folders are created under both the following conditions:
405.\"
406.IP 1.
407   The user logins via the IMAP or the POP3 protocol.
408   \fIautocreate_quota\fR option must have a value of zero or greater.
409.\"
410.IP 2.
411   A message arrives for the user through the \fIlmtpd(8)\fR.
412   \fIautocreate_post\fR option must be enabled.
413.PP
414 */
415
416{ "autocreate_post", 0, SWITCH, "2.5.0" }
417/* If enabled, when \fIlmtpd(8)\fR receives an incoming mail for an
418   INBOX that does not exist, then the INBOX is automatically created
419   by \fIlmtpd(8)\fR and delivery of the message continues. */
420
421{ "autocreate_quota", -1, INT, "2.5.0" }
422/* If set to a value of zero or higher, users have their INBOX folders
423   created upon a successful login event or upon \fIlmtpd(8)\fR
424   message delivery if \fIautocreate_post\fR is enabled, provided their
425   INBOX did not yet already exist.
426.PP
427   The user's quota is set to the value if it is greater than zero,
428   otherwise the user has unlimited quota.
429.PP
430   Note that quota is specified in kilobytes. */
431
432{ "autocreate_quota_messages", -1, INT, "3.0.0" }
433/* If set to a value of zero or higher, users who have their INBOX
434   folders created upon a successful login event (see
435   \fIautocreate_quota\fR), or upon \fIlmtpd(8)\fR message delivery if
436   \fIautocreate_post\fR is enabled, receive the message quota
437   configured in this option.
438.PP
439   The default of -1 disables assigning message quota.
440.PP
441   For consistency with \fIautocreate_quota\fR, a value of zero is treated
442   as unlimited message quota, rather than a message quota of zero. */
443
444{ "autocreate_sieve_folders", NULL, STRING, "2.5.0" }
445/* A "|" separated list of subfolders of INBOX that will be
446   automatically created, if requested by a sieve filter, through the
447   "fileinto" action. The default is to create no folders
448   automatically.
449.PP
450   Leading and trailing whitespace is stripped from each folder, so a
451   setting of "Junk | Trash" will create two folders: "Junk" and
452   "Trash". */
453
454{ "autocreate_sieve_script", NULL, STRING, "2.5.0" }
455/* The full path of a file that contains a sieve script. This script
456   automatically becomes a user's initial default sieve filter script.
457.PP
458    When this option is not defined, no default sieve filter is created.
459    The file must be readable by the Cyrus daemon. */
460
461{ "autocreate_sieve_script_compile", 0, SWITCH, "2.5.0" }
462/* If set to yes and no compiled sieve script file exists, the sieve script which is
463   compiled on the fly will be saved in the file name that autocreate_sieve_compiledscript
464   option points to. In order a compiled script to be generated, autocreate_sieve_script and
465   autocreate_sieve_compiledscript must have valid values */
466
467{ "autocreate_sieve_script_compiled", NULL, STRING, "2.5.0" }
468/* The full path of a file that contains a compiled in bytecode sieve script. This script
469   automatically becomes a user's initial default sieve filter script.  If this option is
470   not specified, or the filename doesn't exist then the script defined by
471   autocreate_sieve_script is compiled on the fly and installed as the user's default
472   sieve script */
473
474{ "autocreate_subscribe_folders", NULL, STRING, "2.5.0" }
475/* A list of folder names, separated by "|", that the users get automatically subscribed to,
476   when their INBOX is created. These folder names must have been included in the
477   autocreateinboxfolders option of the imapd.conf. */
478
479{ "autocreate_subscribe_sharedfolders", NULL, STRING, "2.5.0" }
480/* A list of shared folders (bulletin boards), separated by "|", that the users get
481   automatically subscribed to, after their INBOX is created. The shared folder must
482   have been created and the user must have the required permissions to get subscribed
483   to it. Otherwise, subscribing to the shared folder fails. */
484
485{ "autocreate_subscribe_sharedfolders_all", 0, SWITCH, "2.5.0" }
486/* If set to yes, the user is automatically subscribed to all shared folders, one has permission
487   to subscribe to. */
488
489{ "autocreate_users", "anyone", STRING, "2.5.0" }
490/* A space separated list of users and/or groups that are allowed their INBOX to be
491   automatically created. */
492
493{ "autoexpunge", 0, SWITCH, "3.1.7" }
494/* If set to yes, then all \Deleted messages will be automatically expunged whenever
495   an index is closed, whether CLOSE, UNSELECT, SELECT or on disconnect */
496
497# Commented out - there's no such thing as "backuppartition-name",
498# but we need this for the man page
499# { "backuppartition-name", NULL, STRING, "3.0.0" }
500/* The pathname of the backup partition \fIname\fR.  At least one backup
501   partition pathname MUST be specified if backups are in use.  Note that
502   there is no relationship between spool partitions and backup partitions. */
503
504{ "backup_compact_minsize", 0, INT, "3.0.0" }
505/* The minimum size in kilobytes of chunks in each backup.  The compact tool
506   will try to combine adjacent chunks that are smaller than this.
507.PP
508   Setting this value to zero or negative disables combining of chunks. */
509
510{ "backup_compact_maxsize", 0, INT, "3.0.0" }
511/* The maximum size in kilobytes of chunks in each backup.  The compact tool
512   will try to split chunks larger than this into smaller chunks.
513.PP
514   Setting this value to zero or negative disables splitting of chunks. */
515
516{ "backup_compact_work_threshold", 1, INT, "3.0.0" }
517/* The number of chunks that must obviously need compaction before the compact
518   tool will go ahead with the compaction.  If set to less than one, the value
519   is treated as being one. */
520
521{ "backup_staging_path", NULL, STRING, "3.0.0" }
522/* The absolute path of the backup staging area.  If not specified,
523   will be temp_path/backup */
524
525{ "backup_retention_days", NULL, DURATION, "3.1.8", "3.1.8", "backup_retention" }
526/* Deprecated in favor of \fIbackup_retention\fR. */
527
528{ "backup_retention", "7d", DURATION, "3.1.0" }
529/* How long to keep content in backup after it has been deleted
530   from the source.  If set to a negative value or zero, deleted content
531   will be kept indefinitely.
532.PP
533   For backward compatibility, if no unit is specified, days is
534   assumed.  */
535
536{ "backup_db", "twoskip", STRINGLIST("skiplist", "sql", "twoskip", "zeroskip"), "3.1.6" }
537/* The cyrusdb backend to use for the backup locations database. */
538
539{ "backup_db_path", NULL, STRING, "3.0.0" }
540/* The absolute path to the backup db file.  If not specified,
541   will be configdirectory/backups.db */
542
543{ "backup_keep_previous", 0, SWITCH, "3.0.0" }
544/* Whether the \fBctl_backups compact\fR and \fBctl_backups reindex\fR
545   commands should preserve the original file.  The original file will
546   be named with a timestamped suffix.  This is mostly useful for
547   debugging.
548.PP
549   Note that with this enabled, compacting a backup will actually
550   increase the disk used by it (because there will now be an extra
551   copy: the original version, and the compacted version). */
552
553{ "boundary_limit", 1000, INT, "2.5.0" }
554/* messages are parsed recursively and a deep enough MIME structure
555   can cause a stack overflow.  Do not parse deeper than this many
556   layers of MIME structure.  The default of 1000 is much higher
557   than any sane message should have. */
558
559{ "caldav_allowattach", 1, SWITCH, "3.0.0" }
560/* Enable managed attachments support on the CalDAV server. */
561
562{ "caldav_allowcalendaradmin", 0, SWITCH, "3.1.2" }
563/* Enable per-user calendar administration web UI on the CalDAV server. */
564
565{ "caldav_allowscheduling", "on", ENUM("off", "on", "apple"), "2.5.0" }
566/* Enable calendar scheduling operations. If set to "apple", the
567   server will emulate Apple CalendarServer behavior as closely as
568   possible. */
569
570{ "caldav_create_attach", 1, SWITCH, "3.0.0" }
571/* Create the 'Attachments' collection if it doesn't already exist */
572
573{ "caldav_create_default", 1, SWITCH, "3.0.0" }
574/* Create the 'Default' calendar if it doesn't already exist */
575
576{ "caldav_create_sched", 1, SWITCH, "3.0.0" }
577/* Create the 'Inbox' and 'Outbox' calendars if they don't already exist */
578
579{ "caldav_historical_age", "7d", DURATION, "3.1.8" }
580/* How long after an occurrence of event or task has concluded
581   that it is considered 'historical'.  Changes to historical
582   occurrences of events or tasks WILL NOT have invite or reply
583   messages sent for them.  A negative value means that events
584   and tasks are NEVER considered historical.
585.PP
586   For backward compatibility, if no unit is specified, days is
587   assumed.  */
588*/
589
590{ "caldav_maxdatetime", "20380119T031407Z", STRING, "2.5.0" }
591/* The latest date and time accepted by the server (ISO format).  This
592   value is also used for expanding non-terminating recurrence rules.
593.PP
594   Note that increasing this value will require the DAV databases for
595   calendars to be reconstructed with the \fBdav_reconstruct\fR
596   utility in order to see its effect on serer-side time-based
597   queries. */
598
599{ "caldav_mindatetime", "19011213T204552Z", STRING, "2.5.0" }
600/* The earliest date and time accepted by the server (ISO format). */
601
602{ "caldav_realm", NULL, STRING, "2.5.0" }
603/* The realm to present for HTTP authentication of CalDAV resources.
604   If not set (the default), the value of the "servername" option will
605   be used.*/
606
607{ "calendarprefix", "#calendars", STRING, "2.5.0" }
608/* The prefix for the calendar mailboxes hierarchies.  The hierarchy
609   delimiter will be automatically appended.  The public calendar
610   hierarchy will be at the toplevel of the shared namespace.  A
611   user's personal calendar hierarchy will be a child of their Inbox. */
612
613{ "calendar_default_displayname", "personal", STRING, "3.3.0" }
614/* The displayname to be used when creating a user's 'Default' calendar. */
615
616{ "calendar_user_address_set", NULL, STRING, "2.5.0" }
617/* Space-separated list of domains corresponding to calendar user
618   addresses for which the server is responsible.  If not set (the
619   default), the value of the "servername" option will be used. */
620
621{ "calendar_component_set", "VEVENT VTODO VJOURNAL VFREEBUSY VAVAILABILITY VPOLL", BITFIELD("VEVENT", "VTODO", "VJOURNAL", "VFREEBUSY", "VAVAILABILITY", "VPOLL"), "3.1.7" }
622/* Space-separated list of iCalendar component types that calendar
623   object resources may contain in a calendar collection.
624   This restriction is only set at calendar creation time and only
625   if the CalDAV client hasn't specified a restriction in the creation
626   request. */
627
628{ "carddav_allowaddmember", 0, SWITCH, "3.1.3" }
629/* Enable support for POST add-member on the CardDAV server. */
630
631{ "carddav_allowaddressbookadmin", 0, SWITCH, "3.1.2" }
632/* Enable per-user addressbook administration web UI on the CardDAV server. */
633
634{ "carddav_realm", NULL, STRING, "2.5.0" }
635/* The realm to present for HTTP authentication of CardDAV resources.
636   If not set (the default), the value of the "servername" option will
637   be used.*/
638
639{ "carddav_repair_vcard", 0, SWITCH, "3.0.0", "3.3.1" }
640/* If enabled, VCARDs with invalid content are attempted to be repaired
641   during creation. */
642
643{ "chatty", 0, SWITCH, "2.5.0" }
644/* If yes, syslog tags and commands for every IMAP command, mailboxes
645   for every lmtp connection, every POP3 command, etc */
646
647{ "client_bind", 0, SWITCH, "3.0.0" }
648/* If enabled, a specific IP will be bound when performing a client
649   connection.  \fBclient_bind_name\fR is used if it is set, otherwise
650   \fBservername\fR is used.  This is useful on multi-homed servers where
651   Cyrus should not use other services' interfaces.
652.PP
653   If not enabled (the default), no bind will be performed.  Client
654   connections will use an IP chosen by the operating system. */
655
656{ "client_bind_name", NULL, STRING, "3.0.0" }
657/* IPv4, IPv6 address or hostname to bind for client connections when
658   \fBclient_bind\fR is enabled.  If not set (the default),
659   \fRservername\fR will be used. */
660
661{ "client_timeout", "10s", DURATION, "3.1.8" }
662/* Time to wait before returning a timeout failure when performing a
663   client connection (e.g. in a murder environment).
664.PP
665   For backward compatibility, if no unit is specified, seconds is
666   assumed.  */
667
668{ "commandmintimer", NULL, STRING, "2.4.0" }
669/* Time in seconds. Any imap command that takes longer than this
670   time is logged. */
671
672{ "configdirectory", NULL, STRING, "2.3.17" }
673/* The pathname of the IMAP configuration directory.  This field is
674   required. */
675
676{ "createonpost", 0, SWITCH, "2.5.0", "2.5.0", "autocreate_post" }
677/* Deprecated in favor of \fIautocreate_post\fR. */
678
679{ "conversations", 0, SWITCH, "3.0.0" }
680/* Enable the XCONVERSATIONS extensions.  Extract conversation
681   tracking information from incoming messages and track them
682   in per-user databases. */
683
684{ "conversations_counted_flags", NULL, STRING, "3.0.0" }
685/* space-separated list of flags for which per-conversation counts
686   will be kept.  Note that you need to reconstruct the conversations
687   database with ctl_conversationsdb if you change this option on a
688   running server, or the counts will be wrong.  */
689
690{ "conversations_db", "skiplist", STRINGLIST("skiplist", "sql", "twoskip", "zeroskip"), "3.1.6" }
691/* The cyrusdb backend to use for the per-user conversations database. */
692
693{ "conversations_expire_days", NULL, DURATION, "3.1.8", "3.1.8", "conversations_expire_after" }
694/* Deprecated in favor of \fIconversations_expire_after\fR. */
695
696{ "conversations_expire_after", "90d", DURATION, "3.1.8" }
697/* How long the conversations database keeps the message tracking
698   information needed for receiving new messages in existing
699   conversations.
700.PP
701   For backward compatibility, if no unit is specified, days is
702   assumed. */
703
704{ "conversations_keep_existing", 1, SWITCH, "3.3.0" }
705/* during conversations cleanup, don't clean up if there are still existing emails
706   with one of the mentioned CIDs */
707
708{ "conversations_max_thread", 100, INT, "3.1.1" }
709/* maximum size for a single thread.  Threads will split if they have this many
710   messages in them and another message arrives */
711
712{ "conversations_max_guidrecords", 5000, INT, "3.3.0" }
713/* maximum records with the same guid.  This is just a sanity check to stop the same
714   email being added and removed over and over, so the default is 5000 */
715
716{ "conversations_max_guidexists", 100, INT, "3.3.0" }
717/* maximum records with the same guid.  This maps to "labels", so with the default
718   of 100, you can only have 100 labels on an email in JMAP */
719
720{ "conversations_max_guidinfolder", 10, INT, "3.3.0" }
721/* maximum records with the same guid in the same folder. You can't do this via JMAP,
722   but could via IMAP.  The default of 10 should be heaps normally! */
723
724{ "crossdomains", 0, SWITCH, "3.0.0" }
725/* Enable cross domain sharing.  This works best with alt namespace and
726   unix hierarchy separators on, so you get Other Users/foo@example.com/... */
727
728{ "crossdomains_onlyother", 0, SWITCH, "3.0.0" }
729/* only show the domain for users in other domains than your own (for
730   backwards compatibility if you're already sharing */
731
732{ "cyrus_group", NULL, STRING, "3.1.7" }
733/* The name of the group Cyrus services will run as.  If not configured, the
734   primary group of cyrus_user will be used. Can be further overridden by
735   setting the $CYRUS_GROUP environment variable. */
736
737{ "cyrus_user", NULL, STRING, "3.0.0" }
738/* The username to use as the 'cyrus' user.  If not configured, the compile
739   time default will be used. Can be further overridden by setting the
740   $CYRUS_USER environment variable. */
741
742{ "davdriveprefix", "#drive", STRING, "3.0.0" }
743/* The prefix for the DAV storage mailboxes hierarchies.  The hierarchy
744   delimiter will be automatically appended.  The public storage
745   hierarchy will be at the toplevel of the shared namespace.  A
746   user's personal storage hierarchy will be a child of their Inbox. */
747
748{ "davnotificationsprefix", "#notifications", STRING, "3.0.0" }
749/* The prefix for the DAV notifications hierarchy.  The hierarchy
750   delimiter will be automatically appended.  The public notifications
751   hierarchy will be at the toplevel of the shared namespace.  A
752   user's personal notifications hierarchy will be a child of their Inbox. */
753
754{ "dav_realm", NULL, STRING, "2.5.0" }
755/* The realm to present for HTTP authentication of generic DAV
756   resources (principals).  If not set (the default), the value of the
757   "servername" option will be used.*/
758
759{ "dav_lock_timeout", "20s", DURATION, "3.1.8" }
760/* The maximum time to wait for a write lock on the per-user DAV database
761   before timeout. For HTTP requests, the HTTP status code 503 is returned
762   if the lock can not be obtained within this time.
763.PP
764   For backward compatibility, if no unit is specified, seconds is
765   assumed. */
766
767{ "debug_command", NULL, STRING, "2.3.17" }
768/* Debug command to be used by processes started with -D option.  The string
769   is a C format string that gets 3 options: the first is the name of the
770   executable (as specified in the cmd parameter in cyrus.conf). The second
771   is the pid (integer) and the third is the service ID.
772   Example: /usr/local/bin/gdb /usr/cyrus/bin/%s %d */
773
774{ "defaultacl", "anyone lrs", STRING, "2.3.17" }
775/* The Access Control List (ACL) placed on a newly-created (non-user)
776   mailbox that does not have a parent mailbox. */
777
778{ "defaultdomain", "internal", STRING, "3.0.0" }
779/* The default domain for virtual domain support */
780
781{ "defaultpartition", NULL, STRING, "2.3.17" }
782/* The partition name used by default for new mailboxes.  If not
783   specified, the partition with the most free space will be used for
784   new mailboxes.
785.PP
786   Note that the partition specified by this option must also be
787   specified as \fIpartition-name\fR, where you substitute 'name'
788   for the alphanumeric string you set \fIdefaultpartition\fR to. */
789
790{ "defaultsearchtier", "", STRING, "3.0.0" }
791/* Name of the default tier that messages will be indexed to. Search
792   indexes can be organized in tiers to allow index storage in different
793   directories and physical media. See the man page of squatter for
794   details. The default search tier also requires the definition
795   of an according \fIsearchtierpartition-name\fR entry.
796.PP
797   This option MUST be specified for xapian search. */
798
799{ "defaultserver", NULL, STRING, "2.3.17" }
800/* The backend server name used by default for new mailboxes.  If not
801   specified, the server with the most free space will be used for new
802   mailboxes. */
803
804{ "deletedprefix", "DELETED", STRING, "2.3.17" }
805/*  With \fBdelete_mode\fR set to \fIdelayed\fR, the
806    \fBdeletedprefix\fR setting defines the prefix for the hierarchy of
807    deleted mailboxes.
808.PP
809    The hierarchy delimiter will be automatically appended.
810*/
811
812{ "delete_mode", "delayed", ENUM("immediate", "delayed"), "2.5.0" }
813/*  The manner in which mailboxes are deleted. In the default
814    \fIdelayed\fR mode, mailboxes that are being deleted are renamed to
815    a special mailbox hierarchy under the \fBdeletedprefix\fR, to be
816    removed later by \fBcyr_expire(8)\fR.
817.PP
818    In \fIimmediate\fR mode, the mailbox is removed from the filesystem
819    immediately.
820*/
821
822{ "delete_unsubscribe", 0, SWITCH, "3.0.0" }
823/* Whether to also unsubscribe from mailboxes when they are deleted.
824   Note that this behaviour contravenes RFC 3501 section 6.3.9, but
825   may be useful for avoiding user/client software confusion.
826   The default is 'no'. */
827
828{ "deleteright", "c", STRING, "2.3.17" }
829/* Deprecated - only used for backwards compatibility with existing
830   installations.  Lists the old RFC 2086 right which was used to
831   grant the user the ability to delete a mailbox.  If a user has this
832   right, they will automatically be given the new 'x' right. */
833
834{ "disable_user_namespace", 0, SWITCH, "2.5.0" }
835/* Preclude list command on user namespace.  If set to 'yes', the
836   LIST response will never include any other user's mailbox.  Admin
837   users will always see all mailboxes.  The default is 'no' */
838
839{ "disable_shared_namespace", 0, SWITCH, "2.5.0" }
840/* Preclude list command on shared namespace.  If set to 'yes', the
841   LIST response will never include any non-user mailboxes.  Admin
842   users will always see all mailboxes.  The default is 'no' */
843
844{ "disconnect_on_vanished_mailbox", 0, SWITCH, "2.3.17" }
845/* If enabled, IMAP/POP3/NNTP clients will be disconnected by the
846   server if the currently selected mailbox is (re)moved by another
847   session.  Otherwise, the missing mailbox is treated as empty while
848   in use by the client.*/
849
850{ "ischedule_dkim_domain", NULL, STRING, "2.5.0" }
851/* The domain to be reported as doing iSchedule DKIM signing. */
852
853{ "ischedule_dkim_key_file", NULL, STRING, "2.5.0" }
854/* File containing the private key for iSchedule DKIM signing. */
855
856{ "ischedule_dkim_required", 1, SWITCH, "3.1.4" }
857/* A DKIM signature is required on received iSchedule requests. */
858
859{ "ischedule_dkim_selector", NULL, STRING, "2.5.0" }
860/* Name of the selector subdividing the domain namespace.  This
861   specifies the actual key used for iSchedule DKIM signing within the
862   domain. */
863
864{ "duplicate_db", "twoskip", STRINGLIST("skiplist", "sql", "twoskip", "zeroskip"), "3.1.6" }
865/* The cyrusdb backend to use for the duplicate delivery suppression
866   and sieve. */
867
868{ "duplicate_db_path", NULL, STRING, "2.5.0" }
869/* The absolute path to the duplicate db file.  If not specified,
870   will be configdirectory/deliver.db */
871
872{ "duplicatesuppression", 1, SWITCH, "2.3.17" }
873/* If enabled, lmtpd will suppress delivery of a message to a mailbox if
874   a message with the same message-id (or resent-message-id) is recorded
875   as having already been delivered to the mailbox.  Records the mailbox
876   and message-id/resent-message-id of all successful deliveries. */
877
878{ "event_content_inclusion_mode", "standard", ENUM("standard", "message", "header", "body", "headerbody"), "2.5.0" }
879/* The mode in which message content may be included with MessageAppend and
880   MessageNew. "standard" mode is the default behavior in which message is
881   included up to a size with the notification. In "message" mode, the message
882   is included and may be truncated to a size. In "header" mode, it includes
883   headers truncated to a size. In "body" mode, it includes body truncated
884   to a size. In "headerbody" mode, it includes full headers and body truncated
885   to a size */
886
887{ "event_content_size", 0, INT, "2.5.0" }
888/* Truncate the message content that may be included with MessageAppend and
889   MessageNew. Set 0 to include the entire message itself */
890
891{ "event_exclude_flags", NULL, STRING, "2.5.0" }
892/* Don't send event notification for given IMAP flag(s) */
893
894{ "event_exclude_specialuse", "\\Junk", STRING, "2.5.0" }
895/* Don't send event notification for folder with given special-use attributes.
896   Set ALL for any folder */
897
898{ "event_extra_params", "timestamp", BITFIELD("bodyStructure", "clientAddress", "diskUsed", "flagNames", "messageContent", "messageSize", "messages", "modseq", "service", "timestamp", "uidnext", "vnd.cmu.midset", "vnd.cmu.unseenMessages", "vnd.cmu.envelope", "vnd.cmu.sessionId", "vnd.cmu.mailboxACL", "vnd.cmu.mbtype", "vnd.cmu.davFilename", "vnd.cmu.davUid", "vnd.fastmail.clientId", "vnd.fastmail.sessionId", "vnd.fastmail.convExists", "vnd.fastmail.convUnseen", "vnd.fastmail.cid", "vnd.fastmail.counters", "vnd.cmu.emailid", "vnd.cmu.threadid"), "3.1.6" }
899/* Space-separated list of extra parameters to add to any appropriated event. */
900
901{ "event_groups", "message mailbox", BITFIELD("message", "quota", "flags", "access", "mailbox", "subscription", "calendar", "applepushservice" ), "3.0.0" }
902/* Space-separated list of groups of related events to turn on notification */
903
904{ "event_notifier", NULL, STRING, "2.5.0" }
905/* Notifyd(8) method to use for "EVENT" notifications which are based on
906   the RFC 5423.  If not set, "EVENT" notifications are disabled. */
907
908{ "expunge_mode", "delayed", ENUM("immediate", "semidelayed", "delayed"), "3.1.1" }
909/* The mode in which messages (and their corresponding cache entries)
910   are expunged.  "semidelayed" mode is the old behavior in which the
911   message files are purged at the time of the EXPUNGE, but index
912   and cache records are retained to facilitate QRESYNC.
913   In "delayed" mode, which is the default since Cyrus 2.5.0,
914   the message files are also retained, allowing unexpunge to
915   rescue them.  In "immediate" mode, both the message files and the
916   index records are removed as soon as possible.  In all cases,
917   nothing will be finally purged until all other processes have
918   closed the mailbox to ensure they never see data disappear under
919   them.  In "semidelayed" or "delayed" mode, a later run of "cyr_expire"
920   will clean out the retained records (and possibly message files).
921   This reduces the amount of I/O that takes place at the time of
922   EXPUNGE and should result in greater responsiveness for the client,
923   especially when expunging a large number of messages. */
924
925{ "failedloginpause", "3s", DURATION, "3.1.8" }
926/* Time to pause after a failed login.
927.PP
928   For backward compatibility, if no unit is specified, seconds is
929   assumed. */
930
931{ "flushseenstate", 1, SWITCH, "2.5.0", "2.5.0" }
932/* Deprecated. No longer used */
933
934{ "foolstupidclients", 0, SWITCH, "2.3.17" }
935/* If enabled, only list the personal namespace when a LIST "*" is performed
936   (it changes the request to a LIST "INBOX*"). */
937
938{ "force_sasl_client_mech", NULL, STRING, "2.3.17" }
939/* Force preference of a given SASL mechanism for client side operations
940   (e.g., murder environments).  This is separate from (and overridden by)
941   the ability to use the <host shortname>_mechs option to set preferred
942   mechanisms for a specific host */
943
944{ "fulldirhash", 0, SWITCH, "2.3.17" }
945/* If enabled, uses an improved directory hashing scheme which hashes
946   on the entire username instead of using just the first letter as
947   the hash.  This changes hash algorithm used for quota and user
948   directories and if \fIhashimapspool\fR is enabled, the entire mail
949   spool.
950.PP
951   Note that this option CANNOT be changed on a live system.  The
952   server must be quiesced and then the directories moved with the
953   \fBrehash\fR utility. */
954
955{ "hashimapspool", 0, SWITCH, "2.3.17" }
956/* If enabled, the partitions will also be hashed, in addition to the
957   hashing done on configuration directories.  This is recommended if
958   one partition has a very bushy mailbox tree. */
959
960{ "debug", 0, SWITCH, "2.5.0" }
961/* If enabled, allow syslog() to pass LOG_DEBUG messages. */
962
963# Commented out - there's no such thing as "hostname_mechs", but we need
964# this for the man page
965# { "hostname_mechs", NULL, STRING, "2.3.17" }
966/* Force a particular list of SASL mechanisms to be used when authenticating
967   to the backend server hostname (where hostname is the short hostname of
968   the server in question). If it is not specified it will query the server
969   for available mechanisms and pick one to use. - Cyrus Murder */
970
971# Commented out - there's no such thing as "hostname_password", but we need
972# this for the man page
973# { "hostname_password", NULL, STRING, "2.3.17" }
974/* The password to use for authentication to the backend server hostname
975   (where hostname is the short hostname of the server) - Cyrus Murder */
976
977{ "httpallowcompress", 1, SWITCH, "2.5.0" }
978/* If enabled, the server will compress response payloads if the client
979   indicates that it can accept them.  Note that the compressed data
980   will appear in telemetry logs, leaving only the response headers as
981   human-readable.*/
982
983{ "httpallowcors", NULL, STRING, "2.5.0" }
984/* A wildmat pattern specifying a list of origin URIs ( scheme "://"
985   host [ ":" port ] ) that are allowed to make Cross-Origin Resource
986   Sharing (CORS) requests on the server.  By default, CORS requests
987   are disabled.
988.PP
989   Note that the scheme and host should both be lowercase, the port
990   should be omitted if using the default for the scheme (80 for http,
991   443 for https), and there should be no trailing '/' (e.g.:
992   "http://www.example.com:8080", "https://example.org"). */
993
994{ "httpallowtrace", 0, SWITCH, "2.5.0" }
995/* Allow use of the TRACE method.
996.PP
997   Note that sensitive data might be disclosed by the response. */
998
999{ "httpallowedurls", NULL, STRING, "2.5.0" }
1000/* Space-separated list of relative URLs (paths) rooted at
1001   "httpdocroot" (see below) to be served by httpd.  If set, this
1002   option will limit served static content to only those paths specified
1003   (returning "404 Not Found" to any other client requested URLs).
1004   Otherwise, httpd will serve any content found in "httpdocroot".
1005.PP
1006   Note that any path specified by "rss_feedlist_template" is an
1007   exception to this rule.*/
1008
1009{ "httpcontentmd5", 0, SWITCH, "2.5.0" }
1010/* If enabled, HTTP responses will include a Content-MD5 header for
1011   the purpose of providing an end-to-end message integrity check
1012   (MIC) of the payload body.  Note that enabling this option will
1013   use additional CPU to generate the MD5 digest, which may be ignored
1014   by clients anyways. */
1015
1016{ "httpdocroot", NULL, STRING, "2.5.0" }
1017/* If set, http will serve the static content (html/text/jpeg/gif
1018   files, etc) rooted at this directory.  Otherwise, httpd will not
1019   serve any static content. */
1020
1021{ "httpkeepalive", "20s", DURATION, "3.1.8" }
1022/* Set the length of the HTTP server's keepalive heartbeat.  The
1023   default is 20 seconds.  The minimum value is 0, which will disable
1024   the keepalive heartbeat.  When enabled, if a request takes longer
1025   than \fIhttpkeepalive\fR to process, the server will send the client
1026   provisional responses every \fIhttpkeepalive\fR until the final
1027   response can be sent.
1028.PP
1029   For backward compatibility, if no unit is specified, seconds is
1030   assumed. */
1031
1032{ "httplogheaders", NULL, STRING, "3.3.1" }
1033/* Space-separated list of HTTP header fields that will be included
1034   in the requests logged by httpd(8). */
1035
1036{ "httpmodules", "", BITFIELD("admin", "caldav", "carddav", "cgi", "domainkey", "freebusy", "ischedule", "jmap", "prometheus", "rss", "tzdist", "webdav"), "3.1.7" }
1037/* Space-separated list of HTTP modules that will be enabled in
1038   httpd(8).  This option has no effect on modules that are disabled
1039   at compile time due to missing dependencies (e.g. libical).
1040.PP
1041   Note that "domainkey" depends on "ischedule" being enabled, and
1042   that both "freebusy" and "ischedule" depend on "caldav" being
1043   enabled. */
1044
1045{ "httpprettytelemetry", 0, SWITCH, "2.5.0" }
1046/* If enabled, HTTP response payloads including server-generated
1047   markup languages (HTML, XML) will utilize line breaks and
1048   indentation to promote better human-readability in telemetry logs.
1049   Note that enabling this option will increase the amount of data
1050   sent across the wire. */
1051
1052{ "httptimeout", "5m", DURATION, "3.1.8" }
1053/* Set the length of the HTTP server's inactivity autologout timer.
1054   The default is 5 minutes.  The minimum value is 0, which will
1055   disable persistent connections.
1056.PP
1057   For backwards compatibility, if no unit is specified, minutes
1058   is assumed. */
1059
1060{ "idlesocket", "{configdirectory}/socket/idle", STRING, "2.3.17" }
1061/* Unix domain socket that idled listens on. */
1062
1063{ "ignorereference", 0, SWITCH, "2.3.17" }
1064/* For backwards compatibility with Cyrus 1.5.10 and earlier -- ignore
1065  the reference argument in LIST or LSUB commands. */
1066
1067{ "imapidlepoll", "60s", DURATION, "3.1.8" }
1068/* The interval for polling for mailbox changes and ALERTs while running
1069   the IDLE command.  This option is used when idled is not enabled or
1070   cannot be contacted.  The minimum value is 1 second.  A value of 0
1071   will disable IDLE.
1072.PP
1073   For backward compatibility, if no unit is specified, seconds is
1074   assumed. */
1075
1076{ "imapidresponse", 1, SWITCH, "2.3.17" }
1077/* If enabled, the server responds to an ID command with a parameter
1078   list containing: version, vendor, support-url, os, os-version,
1079   command, arguments, environment.  Otherwise the server returns NIL. */
1080
1081{ "imapmagicplus", 0, SWITCH, "2.3.17" }
1082/* Only list a restricted set of mailboxes via IMAP by using
1083   userid+namespace syntax as the authentication/authorization id.
1084   Using userid+ (with an empty namespace) will list only subscribed
1085   mailboxes. */
1086
1087{ "imipnotifier", NULL, STRING, "3.0.0" }
1088/* Notifyd(8) method to use for "IMIP" notifications which are based on
1089   the RFC 6047.  If not set, "IMIP" notifications are disabled. */
1090
1091{ "implicit_owner_rights", "lkxan", STRING, "3.1.2" }
1092/* The implicit Access Control List (ACL) for the owner of a mailbox. */
1093
1094# Commented out - there's no such thing as "@include", but we need
1095# this for the man page
1096# { "@include", NULL, STRING, "2.3.17" }
1097/* Directive which includes the specified file as part of the
1098   configuration.  If the path to the file is not absolute, CYRUS_PATH
1099   is prepended. */
1100
1101{ "improved_mboxlist_sort", 0, SWITCH, "2.3.17" }
1102/* If enabled, a special comparator will be used which will correctly
1103   sort mailbox names that contain characters such as ' ' and '-'.
1104.PP
1105   Note that this option SHOULD NOT be changed on a live system.  The
1106   mailboxes database should be dumped (ctl_mboxlist) before the
1107   option is changed, removed, and then undumped after changing the
1108   option.  When not using flat files for the subscriptions databases
1109   the same has to be done (cyr_dbtool) for each subscription database
1110   See improved_mboxlist_sort.html.*/
1111
1112{ "jmap_emailsearch_db_path", NULL, STRING, "3.1.6" }
1113/* The absolute path to the JMAP email search cache file.  If not
1114   specified, JMAP Email/query and Email/queryChanges will not
1115   cache email search results. */
1116
1117{ "jmap_preview_annot", NULL, STRING, "3.1.1" }
1118/* The name of the per-message annotation, if any, to store message
1119   previews. */
1120
1121{ "jmap_imagesize_annot", NULL, STRING, "3.1.1" }
1122/* The name of the per-message annotation, if any, that stores a
1123   JSON object, mapping message part numbers of MIME image types
1124   to an array of their image dimensions. The array must have at
1125   least two entries, where the first entry denotes the width
1126   and the second entry the height of the image. Any additional
1127   values are ignored.
1128
1129   For example, if message part 1.2 contains an image of width 300
1130   and height 200, then the value of this annotation would be:
1131
1132   { "1.2" : [ 300, 200 ] }
1133   */
1134
1135{ "jmap_inlinedcids_annot", NULL, STRING, "3.1.1" }
1136/* The name of the per-message annotation, if any, that stores a
1137   JSON object, mapping RFC 2392 Content-IDs referenced in HTML bodies
1138   to the respective HTML body part number.
1139
1140   For example, if message part 1.2 contains HTML and references an
1141   inlined image at "cid:foo", then the value of this annotation
1142   would be:
1143
1144   { "<foo>" : "1.2" }
1145
1146   Note that the Content-ID key must be URL-unescaped and enclosed in
1147   angular brackets, as defined in RFC 2392. */
1148
1149{ "jmap_preview_length", 64, INT, "3.1.1" }
1150/* The maximum byte length of dynamically generated message previews. Previews
1151   stored in jmap_preview_annot take precedence. */
1152
1153{ "jmap_max_size_upload", 1048576, INT, "3.1.6" }
1154/* The maximum size (in kilobytes) that the JMAP API accepts
1155   for blob uploads. Returned as the maxSizeUpload property
1156   value of the JMAP \"urn:ietf:params:jmap:core\" capabilities object.
1157   Default is 1Gb. */
1158
1159{ "jmap_max_size_blob_set", 4096, INT, "3.3.0" }
1160/* The maximum size (in kilobytes) that the JMAP API accepts
1161   for Blob/set. Returned as the maxSizeBlobSet property
1162   value of the JMAP \"https://cyrusimap.org/ns/jmap/blob\" capabilities object.
1163   Default is 4Mb. */
1164
1165{ "jmap_max_concurrent_upload", 5, INT, "3.1.6" }
1166/* The value to return for the maxConcurrentUpload property of
1167   the JMAP \"urn:ietf:params:jmap:core\" capabilities object. The Cyrus JMAP
1168   implementation does not enforce this rate-limit. */
1169
1170{ "jmap_max_size_request", 10240, INT, "3.1.6" }
1171/* The maximum size (in kilobytes) that the JMAP API accepts
1172   for requests at the API endpoint. Returned as the
1173   maxSizeRequest property value of the JMAP \"urn:ietf:params:jmap:core\"
1174   capabilities object. Default is 10Mb. */
1175
1176{ "jmap_max_concurrent_requests", 5, INT, "3.1.6" }
1177/* The value to return for the maxConcurrentRequests property of
1178   the JMAP \"urn:ietf:params:jmap:core\" capabilities object. The Cyrus JMAP
1179   implementation does not enforce this rate-limit. */
1180
1181{ "jmap_max_calls_in_request", 50, INT, "3.1.6" }
1182/* The maximum number of calls per JMAP request object.
1183   Returned as the maxCallsInRequest property value of the
1184   JMAP \"urn:ietf:params:jmap:core\" capabilities object. */
1185
1186{ "jmap_max_delayed_send", "512d", DURATION, "3.1.8" }
1187/* The value to return for the maxDelayedSend property of
1188   the JMAP \"urn:ietf:params:jmap:emailsubmission\" capabilities object.
1189   The Cyrus JMAP implementation does not enforce this limit.
1190.PP
1191   For backward compatibility, if no unit is specified, seconds is
1192   assumed. */
1193
1194{ "jmap_max_objects_in_get", 4096, INT, "3.1.6" }
1195/* The maximum number of ids that a JMAP client may request in
1196   a single \"/get\" type method call. The actual number
1197   of returned objects in the response may exceed this number
1198   if the JMAP object type supports unbounded \"/get\" calls.
1199   Returned as the maxObjectsInGet property value of the
1200   JMAP \"urn:ietf:params:jmap:core\" capabilities object. */
1201
1202{ "jmap_max_objects_in_set", 4096, INT, "3.1.6" }
1203/* The maximum number of objects a JMAP client may send to create,
1204   update or destroy in a single /set type method call.
1205   Returned as the maxObjectsInSet property value of the
1206   JMAP \"urn:ietf:params:jmap:core\" capabilities object. */
1207
1208{ "jmap_mail_max_size_attachments_per_email", 10240, INT, "3.1.6" }
1209/* The value (in kilobytes) to return for the maxSizeAttachmentsPerEmail
1210   property of the JMAP \"urn:ietf:params:jmap:mail\" capabilities object. The Cyrus
1211   JMAP implementation does not enforce this size limit. Default is 10 Mb.*/
1212
1213{ "jmap_nonstandard_extensions", 0, SWITCH, "3.1.9" }
1214/* If enabled, support non-standard JMAP extensions.  If not enabled,
1215   only IETF standard JMAP functionality is supported. */
1216
1217{ "jmap_set_has_attachment", 1, SWITCH, "3.1.5" }
1218/* If enabled, the $hasAttachment flag is determined and set for new messages
1219   created with the JMAP Email/set or Email/import methods. This option should
1220   typically be enabled, but installations using Cyrus-external message
1221   annatotors to determine the $hasAttachment flag might want to disable it. */
1222
1223{ "jmap_vacation", 1, SWITCH, "3.1.8" }
1224/* If enabled, support the JMAP vacation extension */
1225
1226{ "jmapuploadfolder", "#jmap", STRING, "3.1.1" }
1227/* the name of the folder for JMAP uploads (#jmap) */
1228
1229{ "jmapsubmission_deleteonsend", 1, SWITCH, "3.1.8" }
1230/* If enabled (the default) then delete the EmailSubmission as soon as the email
1231 * has been sent */
1232
1233{ "jmapsubmissionfolder", "#jmapsubmission", STRING, "3.1.8" }
1234/* the name of the folder for JMAP Submissions (#jmapsubmission) */
1235
1236{ "jmappushsubscriptionfolder", "#jmappushsubscription", STRING, "3.1.8" }
1237/* the name of the folder for JMAP Push Subscriptions (#jmappushsubscription) */
1238
1239{ "iolog", 0, SWITCH, "2.5.0" }
1240/* Should cyrus output I/O log entries */
1241
1242{ "ldap_authz", NULL, STRING, "2.3.17" }
1243/* SASL authorization ID for the LDAP server */
1244
1245{ "ldap_base", "", STRING, "2.3.17" }
1246/* Contains the LDAP base dn for the LDAP ptloader module */
1247
1248{ "ldap_bind_dn", NULL, STRING, "2.3.17" }
1249/* Bind DN for the connection to the LDAP server (simple bind).
1250   Do not use for anonymous simple binds */
1251
1252{ "ldap_deref", "never", STRINGLIST("search", "find", "always", "never"), "2.3.17" }
1253/* Specify how aliases dereferencing is handled during search. */
1254
1255{ "ldap_domain_base_dn", "", STRING, "2.5.0" }
1256/* Base DN to search for domain name spaces. */
1257
1258{ "ldap_domain_filter", "(&(objectclass=domainrelatedobject)(associateddomain=%s))", STRING, "2.5.0" }
1259/* Filter to use searching for domains */
1260
1261{ "ldap_domain_name_attribute", "associateddomain", STRING, "2.5.0" }
1262/* The attribute name for domains. */
1263
1264{ "ldap_domain_scope", "sub", STRINGLIST("sub", "one", "base"), "2.5.0" }
1265/* Search scope */
1266
1267{ "ldap_domain_result_attribute", "inetdomainbasedn", STRING, "2.5.0" }
1268/* Result attribute */
1269
1270{ "ldap_filter", "(uid=%u)", STRING, "2.3.17" }
1271/* Specify a filter that searches user identifiers.  The following tokens can be
1272   used in the filter string:
1273
1274   %%   = %
1275   %u   = user
1276   %U   = user portion of %u (%U = test when %u = test@domain.tld)
1277   %d   = domain portion of %u if available (%d = domain.tld when %u =
1278          test@domain.tld), otherwise same as %R
1279   %R   = domain portion of %u starting with @ (%R = @domain.tld
1280          when %u = test@domain.tld)
1281   %D   = user dn.  (use when ldap_member_method: filter)
1282   %1-9 = domain tokens (%1 = tld, %2 = domain when %d = domain.tld)
1283
1284   ldap_filter is not used when ldap_sasl is enabled. */
1285
1286{ "ldap_group_base", "", STRING, "2.3.17" }
1287/* LDAP base dn for ldap_group_filter. */
1288
1289{ "ldap_group_filter", "(cn=%u)", STRING, "2.3.17" }
1290/* Specify a filter that searches for group identifiers.
1291   See ldap_filter for more options. */
1292
1293{ "ldap_group_scope", "sub", STRINGLIST("sub", "one", "base"), "2.3.17" }
1294/* Specify search scope for ldap_group_filter. */
1295
1296{ "ldap_id", NULL, STRING, "2.3.17" }
1297/* SASL authentication ID for the LDAP server */
1298
1299{ "ldap_mech", NULL, STRING, "2.3.17" }
1300/* SASL mechanism for LDAP authentication */
1301
1302{ "ldap_user_attribute", NULL, STRING, "2.5.0" }
1303/* Specify LDAP attribute to use as canonical user id */
1304
1305{ "ldap_member_attribute", NULL, STRING, "2.3.17" }
1306/* See ldap_member_method. */
1307
1308{ "ldap_member_base", "", STRING, "2.3.17" }
1309/* LDAP base dn for ldap_member_filter. */
1310
1311{ "ldap_member_filter", "(member=%D)", STRING, "2.3.17" }
1312/* Specify a filter for "ldap_member_method: filter".
1313   See ldap_filter for more options. */
1314
1315{ "ldap_member_method", "attribute", STRINGLIST("attribute", "filter"), "2.3.17" }
1316/* Specify a group method.  The "attribute" method retrieves groups from
1317   a multi-valued attribute specified in ldap_member_attribute.
1318
1319   The "filter" method uses a filter, specified by ldap_member_filter, to find
1320   groups; ldap_member_attribute is a single-value attribute group name. */
1321
1322{ "ldap_member_scope", "sub", STRINGLIST("sub", "one", "base"), "2.3.17" }
1323/* Specify search scope for ldap_member_filter. */
1324
1325{ "ldap_password", NULL, STRING, "2.3.17" }
1326/* Password for the connection to the LDAP server (SASL and simple bind).
1327   Do not use for anonymous simple binds */
1328
1329{ "ldap_realm", NULL, STRING, "2.3.17" }
1330/* SASL realm for LDAP authentication */
1331
1332{ "ldap_referrals", 0, SWITCH, "2.3.17" }
1333/* Specify whether or not the client should follow referrals. */
1334
1335{ "ldap_restart", 1, SWITCH, "2.3.17" }
1336/* Specify whether or not LDAP I/O operations are automatically restarted
1337   if they abort prematurely. */
1338
1339{ "ldap_sasl", 1, SWITCH, "2.3.17" }
1340/* Use SASL for LDAP binds in the LDAP PTS module. */
1341
1342{ "ldap_sasl_authc", NULL, STRING, "2.5.0", "2.5.0", "ldap_id" }
1343/* Deprecated.  Use ldap_id */
1344
1345{ "ldap_sasl_authz", NULL, STRING, "2.5.0", "2.5.0", "ldap_authz" }
1346/* Deprecated.  Use ldap_authz */
1347
1348{ "ldap_sasl_mech", NULL, STRING, "2.5.0", "2.5.0", "ldap_mech" }
1349/* Deprecated.  Use ldap_mech */
1350
1351{ "ldap_sasl_password", NULL, STRING, "2.5.0", "2.5.0", "ldap_password" }
1352/* Deprecated.  User ldap_password */
1353
1354{ "ldap_sasl_realm", NULL, STRING, "2.5.0", "2.5.0", "ldap_realm" }
1355/* Deprecated.  Use ldap_realm */
1356
1357{ "ldap_scope", "sub", STRINGLIST("sub", "one", "base"), "2.3.17" }
1358/* Specify search scope. */
1359
1360{ "ldap_servers", "ldap://localhost/", STRING, "2.5.0", "2.5.0", "ldap_uri" }
1361/* Deprecated.  Use ldap_uri */
1362
1363{ "ldap_size_limit", 1, INT, "2.3.17" }
1364/* Specify a number of entries for a search request to return. */
1365
1366{ "ldap_start_tls", 0, SWITCH, "2.3.17" }
1367/* Use transport layer security for ldap:// using STARTTLS. Do not use
1368   ldaps:// in 'ldap_uri' with this option enabled. */
1369
1370{ "ldap_time_limit", "5s", DURATION, "3.1.8" }
1371/* How long to wait for a search request to complete.
1372.PP
1373   For backward compatibility, if no unit is specified, seconds is
1374   assumed. */
1375
1376{ "ldap_timeout", "5s", DURATION, "3.1.8" }
1377/* How long a search can take before timing out.
1378.PP
1379   For backward compatibility, if no unit is specified, seconds is
1380   assumed. */
1381
1382{ "ldap_ca_dir", NULL, STRING, "2.5.0" }
1383/* Path to a directory with CA (Certificate Authority) certificates. */
1384
1385{ "ldap_ca_file", NULL, STRING, "2.5.0" }
1386/* Path to a file containing CA (Certificate Authority) certificate(s). */
1387
1388{ "ldap_ciphers", NULL, STRING, "2.5.0" }
1389/* List of SSL/TLS ciphers to allow.  The format of the string is
1390   described in ciphers(1). */
1391
1392{ "ldap_client_cert", NULL, STRING, "2.5.0" }
1393/* File containing the client certificate. */
1394
1395{ "ldap_client_key", NULL, STRING, "2.5.0" }
1396/* File containing the private client key. */
1397
1398{ "ldap_verify_peer", 0, SWITCH, "2.5.0" }
1399/* Require and verify server certificate.  If this option is yes,
1400   you must specify ldap_ca_file or ldap_ca_dir. */
1401
1402{ "ldap_tls_cacert_dir", NULL, STRING, "2.5.0", "2.5.0", "ldap_ca_dir" }
1403/* Deprecated in favor of \fIldap_ca_dir\fR. */
1404
1405{ "ldap_tls_cacert_file", NULL, STRING, "2.5.0", "2.5.0", "ldap_ca_file" }
1406/* Deprecated in favor of \fIldap_ca_file\fR. */
1407
1408{ "ldap_tls_cert", NULL, STRING, "2.5.0", "2.5.0", "ldap_client_cert" }
1409/* Deprecated in favor of \fIldap_client_cert\fR. */
1410
1411{ "ldap_tls_key", NULL, STRING, "2.5.0", "2.5.0", "ldap_client_key" }
1412/* Deprecated in favor of \fIldap_client_key\fR. */
1413
1414{ "ldap_tls_check_peer", 0, SWITCH, "2.5.0", "2.5.0", "ldap_verify_peer" }
1415/* Deprecated in favor of \fIldap_verify_peer\fR. */
1416
1417{ "ldap_tls_ciphers", NULL, STRING, "2.5.0", "2.5.0", "ldap_ciphers" }
1418/* Deprecated in favor of \fIldap_ciphers\fR. */
1419
1420{ "ldap_uri", NULL, STRING, "2.3.17" }
1421/* Contains a list of the URLs of all the LDAP servers when using the
1422   LDAP PTS module. */
1423
1424{ "ldap_version", 3, INT, "2.3.17" }
1425/* Specify the LDAP protocol version.  If ldap_start_tls and/or
1426   ldap_use_sasl are enabled, ldap_version will be automatically
1427   set to 3. */
1428
1429{ "literalminus", 0, SWITCH, "3.0.0" }
1430/* if enabled, CAPABILITIES will reply with LITERAL- rather than
1431   LITERAL+ (RFC 7888).  Doesn't actually size-restrict uploads though */
1432
1433{ "lmtp_downcase_rcpt", 1, SWITCH, "2.5.0" }
1434/* If enabled, lmtpd will convert the recipient addresses to lowercase
1435   (up to a '+' character, if present). */
1436
1437{ "lmtp_exclude_specialuse", "\\Snoozed", STRING, "3.1.8" }
1438/* Don't allow delivery to folders with given special-use attributes.
1439.PP
1440   Note that "snoozing" of emails can currently only be done via the
1441   JMAP protocol, so delivery directly to the \Snoozed mailbox is
1442   prohibited by default as it will not be moved back into INBOX
1443   automatically. */
1444
1445{ "lmtp_fuzzy_mailbox_match", 0, SWITCH, "2.3.17" }
1446/* If enabled, and the mailbox specified in the detail part of the
1447   recipient (everything after the '+') does not exist, lmtpd will try
1448   to find the closest match (ignoring case, ignoring whitespace,
1449   falling back to parent) to the specified mailbox name. */
1450
1451{ "lmtp_over_quota_perm_failure", 0, SWITCH, "2.3.17" }
1452/* If enabled, lmtpd returns a permanent failure code when a user's
1453   mailbox is over quota.  By default, the failure is temporary,
1454   causing the MTA to queue the message and retry later. */
1455
1456{ "lmtp_preparse", 0, SWITCH, "3.3.1" }
1457/* If enabled, lmtpd will map in the email and parse the xapian data
1458   for jmapsearch.  The advantage is that the parsing is done without
1459   holding any locks.  The disadvantage is that the parsing is done
1460   even if it winds up not being needed. */
1461
1462{ "lmtp_strict_quota", 0, SWITCH, "2.3.17" }
1463/* If enabled, lmtpd returns a failure code when the incoming message
1464   will cause the user's mailbox to exceed its quota.  By default, the
1465   failure won't occur until the mailbox is already over quota. */
1466
1467{ "lmtp_strict_rfc2821", 1, SWITCH, "2.5.0" }
1468/* By default, lmtpd will be strict (per RFC 2821) with regards to which
1469   envelope addresses are allowed.  If this option is set to false, 8bit
1470   characters in the local-part of envelope addresses are changed to 'X'
1471   instead.  This is useful to avoid generating backscatter with
1472   certain MTAs like Postfix or Exim which accept such messages. */
1473
1474{ "lmtpsocket", "{configdirectory}/socket/lmtp", STRING, "2.3.17" }
1475/* Unix domain socket that lmtpd listens on, used by deliver(8). This should
1476   match the path specified in cyrus.conf(5). */
1477
1478{ "lmtptxn_timeout", "5m", DURATION, "3.1.8" }
1479/* Timeout used during a lmtp transaction to a remote backend (e.g. in a
1480   murder environment).  Can be used to prevent hung lmtpds on proxy hosts
1481   when a backend server becomes unresponsive during a lmtp transaction.
1482   The default is 5 minutes - change to zero for infinite.
1483.PP
1484   For backward compatibility, if no unit is specified, seconds is
1485   assumed. */
1486
1487{ "lock_debugtime", NULL, STRING, "3.1.4" }
1488/* A floating point number of seconds.  If set, time how long we wait for
1489   any lock, and syslog the filename and time if it's longer than this
1490   value.  The default of NULL means not to time locks. */
1491
1492# xxx how does this tie into virtual domains?
1493{ "loginrealms", "", STRING, "2.3.17" }
1494/* The list of remote realms whose users may authenticate using cross-realm
1495   authentication identifiers.  Separate each realm name by a space.  (A
1496   cross-realm identity is considered any identity returned by SASL
1497   with an "@" in it.). */
1498
1499{ "loginuseacl", 0, SWITCH, "2.3.17" }
1500/* If enabled, any authentication identity which has \fBa\fR rights on a
1501   user's INBOX may log in as that user. */
1502
1503{ "logtimestamps", 0, SWITCH, "2.3.17" }
1504/* Include notations in the protocol telemetry logs indicating the number of
1505   seconds since the last command or response. */
1506
1507{ "mailbox_default_options", 0, INT, "2.3.17" }
1508/* Default "options" field for the mailbox on create.  You'll want to know
1509   what you're doing before setting this, but it can apply some default
1510   annotations like duplicate suppression */
1511
1512{ "mailbox_initial_flags", NULL, STRING, "2.5.0" }
1513/* space-separated list of permanent flags which will be pre-set in every
1514   newly created mailbox.  If you know you will require particular
1515   flag names then this avoids a possible race condition against a client
1516   that fills the entire 128 available slots.  Default is NULL, which is
1517   no flags.  Example: $Label1 $Label2 $Label3 NotSpam Spam */
1518
1519{ "mailbox_maxmessages_addressbook", 0, INT, "3.3.0" }
1520/* Limit the number of messages that may exist in a single mailbox of
1521   "addressbook" type. Default (0) means no limit.  This limit applies
1522   after quotas are checked, so if you have both quota limits and this
1523   set, then you will be denied if you are either over quota or over
1524   this per-mailbox count. */
1525
1526{ "mailbox_maxmessages_calendar", 0, INT, "3.3.0" }
1527/* Limit the number of messages that may exist in a single mailbox of
1528   "calendar" type. Default (0) means no limit.  This limit applies
1529   after quotas are checked, so if you have both quota limits and this
1530   set, then you will be denied if you are either over quota or over
1531   this per-mailbox count. */
1532
1533{ "mailbox_maxmessages_email", 0, INT, "3.3.0" }
1534/* Limit the number of messages that may exist in a single mailbox of
1535   "email" (normal) type. Default (0) means no limit.  This limit applies
1536   after quotas are checked, so if you have both quota limits and this
1537   set, then you will be denied if you are either over quota or over
1538   this per-mailbox count. */
1539
1540{ "mailnotifier", NULL, STRING, "2.3.17" }
1541/* Notifyd(8) method to use for "MAIL" notifications.  If not set, "MAIL"
1542   notifications are disabled. */
1543
1544{ "master_bind_errors_fatal", 0, SWITCH, "3.3.0" }
1545/* If enabled, failure to bind a port during startup is treated as a fatal
1546   error, causing master to shut down immediately.  The default is to keep
1547   running, with the affected service disabled until the next SIGHUP causes
1548   it to retry.
1549.PP
1550   Note that this only applies during startup.  New services that fail to
1551   come up in response to a reconfig+SIGHUP will just be logged and disabled
1552   like the default behaviour, without causing master to exit. */
1553
1554{ "maxheaderlines", 1000, INT, "2.3.17" }
1555/* Maximum number of lines of header that will be processed into cache
1556   records.  Default 1000.  If set to zero, it is unlimited.
1557   If a message hits the limit, an error will be logged and the rest of
1558   the lines in the header will be skipped.  This is to avoid malformed
1559   messages causing giant cache records */
1560
1561{ "maxlogins_per_host", 0, INT, "2.5.0" }
1562/* Maximum number of logged in sessions allowed per host,
1563   zero means no limit */
1564
1565{ "maxlogins_per_user", 0, INT, "2.5.0" }
1566/* Maximum number of logged in sessions allowed per user,
1567   zero means no limit */
1568
1569{ "maxmessagesize", 0, INT, "2.3.17" }
1570/* Maximum incoming LMTP message size.  If non-zero, lmtpd will reject
1571   messages larger than \fImaxmessagesize\fR bytes.  If set to 0, this
1572   will allow messages of any size (the default). */
1573
1574{ "maxquoted", 131072, INT, "2.3.17" }
1575/* Maximum size of a single quoted string for the parser.  Default 128k */
1576
1577{ "maxword", 131072, INT, "2.3.17" }
1578/* Maximum size of a single word for the parser.  Default 128k */
1579
1580{ "mboxkey_db", "twoskip", STRINGLIST("skiplist", "twoskip", "zeroskip"), "3.1.6" }
1581/* The cyrusdb backend to use for mailbox keys. */
1582
1583{ "mboxlist_db", "twoskip", STRINGLIST("flat", "skiplist", "sql", "twoskip", "zeroskip"), "3.1.6" }
1584/* The cyrusdb backend to use for the mailbox list. */
1585
1586{ "mboxlist_db_path", NULL, STRING, "2.5.0" }
1587/* The absolute path to the mailboxes db file.  If not specified
1588   will be configdirectory/mailboxes.db */
1589
1590{ "mboxname_lockpath", NULL, STRING, "2.4.0" }
1591/* Path to mailbox name lock files (default $conf/lock) */
1592
1593{ "metapartition_files", "", BITFIELD("header", "index", "cache", "expunge", "squat", "annotations", "lock", "dav", "archivecache"), "3.0.0" }
1594/* Space-separated list of metadata files to be stored on a
1595   \fImetapartition\fR rather than in the mailbox directory on a spool
1596   partition. */
1597
1598# Commented out - there's no such thing as "metapartition-name",
1599# but we need this for the man page
1600# { "metapartition-name", NULL, STRING, "2.3.17" }
1601/* The pathname of the metadata partition \fIname\fR, corresponding to
1602   spool partition \fBpartition-name\fR.  For any mailbox residing in
1603   a directory on \fBpartition-name\fR, the metadata files listed in
1604   \fImetapartition_files\fR will be stored in a corresponding directory on
1605   \fBmetapartition-name\fR.   Note that not every
1606   \fBpartition-name\fR option is required to have a corresponding
1607   \fBmetapartition-name\fR option, so that you can selectively choose
1608   which spool partitions will have separate metadata partitions. */
1609
1610{ "mupdate_authname", NULL, STRING, "2.3.17" }
1611/* The SASL username (Authentication Name) to use when authenticating to the
1612   mupdate server (if needed). */
1613
1614{ "mupdate_config", "standard", ENUM("standard", "unified", "replicated"), "2.3.17" }
1615/* The configuration of the mupdate servers in the Cyrus Murder.
1616   The "standard" config is one in which there are discreet frontend
1617   (proxy) and backend servers.  The "unified" config is one in which
1618   a server can be both a frontend and backend.  The "replicated"
1619   config is one in which multiple backend servers all share the same
1620   mailspool, but each have their own "replicated" copy of
1621   mailboxes.db. */
1622
1623{ "munge8bit", 1, SWITCH, "2.3.17" }
1624/* If enabled, lmtpd munges messages with 8-bit characters in the
1625   headers.  The 8-bit characters are changed to `X'.  If
1626   \fBreject8bit\fR is enabled, setting \fBmunge8bit\fR has no effect.
1627   (A proper solution to non-ASCII characters in headers is offered by
1628   RFC 2047 and its predecessors.) */
1629
1630# xxx badly worded
1631{ "mupdate_connections_max", 128, INT, "2.3.17" }
1632/* The max number of connections that a mupdate process will allow, this
1633   is related to the number of file descriptors in the mupdate process.
1634   Beyond this number connections will be immediately issued a BYE response. */
1635
1636{ "mupdate_password", NULL, STRING, "2.3.17" }
1637/* The SASL password (if needed) to use when authenticating to the
1638   mupdate server. */
1639
1640{ "mupdate_port", 3905, INT, "2.3.17" }
1641/* The port of the mupdate server for the Cyrus Murder */
1642
1643{ "mupdate_realm", NULL, STRING, "2.3.17" }
1644/* The SASL realm (if needed) to use when authenticating to the mupdate
1645   server. */
1646
1647{ "mupdate_retry_delay", 20, INT, "2.3.17" }
1648/* The base time to wait between connection retries to the mupdate server. */
1649
1650{ "mupdate_server", NULL, STRING, "2.3.17" }
1651/* The mupdate server for the Cyrus Murder */
1652
1653{ "mupdate_username", "", STRING, "2.3.17" }
1654/* The SASL username (Authorization Name) to use when authenticating to
1655   the mupdate server */
1656
1657{ "mupdate_workers_max", 50, INT, "2.3.17" }
1658/* The maximum number of mupdate worker threads (overall) */
1659
1660{ "mupdate_workers_maxspare", 10, INT, "2.3.17" }
1661/* The maximum number of idle mupdate worker threads */
1662
1663{ "mupdate_workers_minspare", 2, INT, "2.3.17" }
1664/* The minimum number of idle mupdate worker threads */
1665
1666{ "mupdate_workers_start", 5, INT, "2.3.17" }
1667/* The number of mupdate worker threads to start */
1668
1669{ "netscapeurl", NULL, STRING, "2.3.17" }
1670/* If enabled at compile time, this specifies a URL to reply when
1671   Netscape asks the server where the mail administration HTTP server
1672   is.  Administrators should set this to a local resource. */
1673
1674{ "newsaddheaders", "to", BITFIELD("to", "replyto"), "2.5.0" }
1675/* Space-separated list of headers to be added to incoming usenet
1676   articles.  Added \fITo:\fR headers will contain email
1677   delivery addresses corresponding to each newsgroup in the
1678   \fINewsgroups:\fR header.  Added \fIReply-To:\fR headers will
1679   contain email delivery addresses corresponding to each newsgroup in
1680   the \fIFollowup-To:\fR or \fINewsgroups:\fR header.  If the
1681   specified header(s) already exist in an article, the email
1682   delivery addresses will be appended to the original header body(s).
1683.br
1684.sp
1685   This option applies if and only if the \fBnewspostuser\fR option is
1686   set. */
1687
1688{ "newsgroups", "*", STRING, "2.4.0" }
1689/* A wildmat pattern specifying which mailbox hierarchies should be
1690   treated as newsgroups.  Only mailboxes matching the wildmat will
1691   accept and/or serve articles via NNTP.  If not set, a default
1692   wildmat of "*" (ALL shared mailboxes) will be used.  If the
1693   \fInewsprefix\fR option is also set, the default wildmat will be
1694   translated to "<newsprefix>.*" */
1695
1696{ "newsmaster", "news", STRING, "2.3.17" }
1697/* Userid that is used for checking access controls when executing
1698   Usenet control messages.  For instance, to allow articles to be
1699   automatically deleted by cancel messages, give the "news" user
1700   the 'd' right on the desired mailboxes.  To allow newsgroups to be
1701   automatically created, deleted and renamed by the corresponding
1702   control messages, give the "news" user the 'c' right on the desired
1703   mailbox hierarchies. */
1704
1705{ "newspeer", NULL, STRING, "2.3.17" }
1706/* A list of whitespace-separated news server specifications to which
1707   articles should be fed.  Each server specification is a string of
1708   the form [user[:pass]@]host[:port][/wildmat] where 'host' is the fully
1709   qualified hostname of the server, 'port' is the port on which the
1710   server is listening, 'user' and 'pass' are the authentication
1711   credentials and 'wildmat' is a pattern that specifies which groups
1712   should be fed.  If no 'port' is specified, port 119 is used.  If
1713   no 'wildmat' is specified, all groups are fed.  If 'user' is specified
1714   (even if empty), then the NNTP POST command will be used to feed
1715   the article to the server, otherwise the IHAVE command will be
1716   used.
1717.br
1718.sp
1719   A '@' may be used in place of '!' in the wildmat to prevent feeding
1720   articles cross-posted to the given group, otherwise cross-posted
1721   articles are fed if any part of the wildmat matches.  For example,
1722   the string "peer.example.com:*,!control.*,@local.*" would feed all
1723   groups except control messages and local groups to
1724   peer.example.com.  In the case of cross-posting to local groups,
1725   these articles would not be fed. */
1726
1727{ "newspostuser", NULL, STRING, "2.5.0" }
1728/* Userid used to deliver usenet articles to newsgroup folders
1729   (usually via lmtp2nntp).  For example, if set to "post", email sent
1730   to "post+comp.mail.imap" would be delivered to the "comp.mail.imap"
1731   folder.
1732.br
1733.sp
1734   When set, the Cyrus NNTP server will add the header(s) specified in
1735   the \fBnewsaddheaders\fR option to each incoming usenet article.
1736   The added header(s) will contain email delivery addresses
1737   corresponding to each relevant newsgroup.  If not set, no headers
1738   are added to usenet articles. */
1739
1740{ "newsprefix", NULL, STRING, "2.3.17" }
1741/* Prefix to be prepended to newsgroup names to make the corresponding
1742   IMAP mailbox names. */
1743
1744{ "newsrc_db_path", NULL, STRING, "2.5.0" }
1745/* The absolute path to the newsrc db file.  If not specified,
1746   will be configdirectory/fetchnews.db */
1747
1748{ "nntptimeout", "3m", DURATION, "3.1.8" }
1749/* Set the length of the NNTP server's inactivity autologout timer.
1750   The minimum value is 3 minutes, also the default.
1751.PP
1752   For backward compatibility, if no unit is specified, minutes is
1753   assumed. */
1754
1755{ "notesmailbox", NULL, STRING, "3.0.0" }
1756/* The top level mailbox in each user's account which is used to store
1757 * Apple-style Notes.  Default is blank (disabled) */
1758
1759{ "notifysocket", "{configdirectory}/socket/notify", STRING, "2.3.17" }
1760/* Unix domain socket that the mail notification daemon listens on. */
1761
1762{ "notify_external", NULL, STRING, "2.4.0" }
1763/* Path to the external program that notifyd(8) will call to send mail
1764   notifications.
1765.PP
1766The external program will be called with the following
1767command line options:
1768
1769.TP
1770.BI \-c " class"
1771.\"
1772.TP
1773.BI \-p " priority"
1774.\"
1775.TP
1776.BI \-u " user"
1777.\"
1778.TP
1779.BI \-m " mailbox"
1780.PP
1781And the notification message will be available on \fIstdin\fR.
1782*/
1783
1784# Commented out - there's no such thing as "partition-name", but we need
1785# this for the man page
1786# { "partition-name", NULL, STRING, "2.3.17" }
1787/* The pathname of the partition \fIname\fR.  At least one partition
1788   pathname MUST be specified.  If the \fBdefaultpartition\fR option is
1789   used, then its pathname MUST be specified.  For example, if the
1790   value of the \fBdefaultpartion\fR option is \fBpart1\fR, then the
1791   \fBpartition-part1\fR field is required. */
1792
1793{ "partition_select_mode", "freespace-most", STRINGLIST("random", "freespace-most", "freespace-percent-most", "freespace-percent-weighted", "freespace-percent-weighted-delta"), "2.5.0" }
1794/* Partition selection mode.
1795.PP
1796.IP \fIrandom\fR 5
1797(pseudo-)random selection
1798.\"
1799.IP \fIfreespace-most\fR 5
1800partition with the most free space (KiB)
1801.\"
1802.IP \fIfreespace-percent-most\fR 5
1803partition with the most free space (%)
1804.\"
1805.IP \fIfreespace-percent-weighted\fR 5
1806each partition is weighted according to its free space (%); the more free space
1807the partition has, the more chances it has to be selected
1808.\"
1809.IP \fIfreespace-percent-weighted-delta\fR 5
1810each partition is weighted according to its difference of free space (%)
1811compared to the most used partition; the more the partition is lagging behind
1812the most used partition, the more chances it has to be selected
1813.PP
1814Note that actually even the most used partition has a few chances to be
1815selected, and those chances increase when other partitions get closer
1816 */
1817
1818{ "partition_select_exclude", NULL, STRING, "2.5.0" }
1819/* List of partitions to exclude from selection mode. */
1820
1821{ "partition_select_usage_reinit", 0, INT, "2.5.0" }
1822/* For a given session, number of \fBoperations\fR (e.g. partition selection)
1823   for which partitions usage data are cached. */
1824
1825{ "partition_select_soft_usage_limit", 0, INT, "2.5.0" }
1826/* Limit of partition usage (%): if a partition is over that limit, it is
1827   automatically excluded from selection mode.
1828.PP
1829If all partitions are over that limit, this feature is not used anymore.
1830 */
1831
1832{ "plaintextloginpause", NULL, DURATION, "3.1.8" }
1833/* Time to pause after a successful plaintext login.  For systems that
1834   support strong authentication, this permits users to perceive a cost
1835   of using plaintext passwords.  (This does not affect the use of PLAIN
1836   in SASL authentications.)
1837.PP
1838   For backward compatibility, if no unit is specified, seconds is
1839   assumed. */
1840
1841{ "plaintextloginalert", NULL, STRING, "2.3.17" }
1842/* Message to send to client after a successful plaintext login. */
1843
1844{ "popexpiretime", "-1", DURATION, "3.1.8" }
1845/* The duration advertised as being the minimum a message may be
1846   left on the POP server before it is deleted (via the CAPA command,
1847   defined in the POP3 Extension Mechanism, which some clients may
1848   support).  This duration has a granularity of whole days, with partial
1849   days truncated (so e.g. "45m" is effectively "0d").  "NEVER", the
1850   default, may be specified with a negative number.
1851.PP
1852   The Cyrus POP3 server never deletes mail, no matter what the value of
1853   this parameter is.  However, if a site implements a less liberal policy,
1854   it needs to change this parameter accordingly.
1855.PP
1856   For backward compatibility, if no unit is specified, days is
1857   assumed. */
1858
1859{ "popminpoll", NULL, DURATION, "3.1.8" }
1860/* Set the minimum amount of time the server forces users to wait
1861   between successive POP logins.
1862.PP
1863   For backward compatibility, if no unit is specified, minutes is
1864   assumed. */
1865
1866{ "popsubfolders", 0, SWITCH, "2.3.17" }
1867/* Allow access to subfolders of INBOX via POP3 by using
1868   userid+subfolder syntax as the authentication/authorization id. */
1869
1870{ "poppollpadding", 1, INT, "2.3.17" }
1871/* Create a softer minimum poll restriction.  Allows \fIpoppollpadding\fR
1872   connections before the minpoll restriction is triggered.  Additionally,
1873   one padding entry is recovered every \fIpopminpoll\fR minutes.
1874   This allows for the occasional polling rate faster than popminpoll,
1875   (i.e., for clients that require a send/receive to send mail) but still
1876   enforces the rate long-term.  Default is 1 (disabled).
1877.br
1878.sp
1879   The easiest way to think of it is a queue of past connections, with one
1880   slot being filled for every connection, and one slot being cleared
1881   every \fIpopminpoll\fR minutes. When the queue is full, the user
1882   will not be able to check mail again until a slot is cleared.  If the
1883   user waits a sufficient amount of time, they will get back many or all
1884   of the slots. */
1885
1886{ "poptimeout", "10m", DURATION, "3.1.8" }
1887/* Set the length of the POP server's inactivity autologout timer.
1888   The minimum value is 10 minutes, the default.
1889.PP
1890   For backward compatibility, if no unit is specified, minutes is
1891   assumed. */
1892
1893{ "popuseacl", 0, SWITCH, "2.3.17" }
1894/* Enforce IMAP ACLs in the pop server.  Due to the nature of the POP3
1895   protocol, the only rights which are used by the pop server are 'r',
1896   't', and 's' for the owner of the mailbox.  The 'r' right allows the
1897   user to open the mailbox and list/retrieve messages.  The 't' right
1898   allows the user to delete messages.  The 's' right allows messages
1899   retrieved by the user to have the \\Seen flag set (only if
1900   \fIpopuseimapflags\fR is also enabled). */
1901
1902{ "popuseimapflags", 0, SWITCH, "2.3.17" }
1903/* If enabled, the pop server will set and obey IMAP flags.  Messages
1904   having the \\Deleted flag are ignored as if they do not exist.
1905   Messages that are retrieved by the client will have the \\Seen flag
1906   set.  All messages will have the \\Recent flag unset. */
1907
1908{ "postmaster", "postmaster", STRING, "2.3.17" }
1909/* Username that is used as the 'From' address in rejection MDNs produced
1910   by sieve. */
1911
1912{ "postspec", NULL, STRING, "2.3.17" }
1913
1914{ "postuser", "", STRING, "2.3.17" }
1915/* Userid used to deliver messages to shared folders.  For example, if
1916   set to "bb", email sent to "bb+shared.blah" would be delivered to
1917   the "shared.blah" folder.  By default, an email address of
1918   "+shared.blah" would be used. */
1919
1920{ "proc_path", NULL, STRING, "2.5.0" }
1921/* Path to proc directory.  Default is NULL - must be an absolute path
1922   if specified.  If not specified, the path $configdirectory/proc/ will be
1923   used. */
1924
1925{ "prometheus_enabled", 0, SWITCH, "3.1.2" }
1926/* Whether tracking of service metrics for Prometheus is enabled. */
1927
1928{ "prometheus_need_auth", "admin", STRINGLIST("none", "user", "admin"), "3.1.2" }
1929/* Authentication level required to fetch Prometheus metrics. */
1930
1931{ "prometheus_update_freq", "10s", DURATION, "3.1.8" }
1932/* Frequency in at which promstatsd should re-collate its statistics
1933   report.  The minimum value is 1 second, the default is 10 seconds.
1934.PP
1935   For backward compatibility, if no unit is specified, seconds is
1936   assumed. */
1937   */
1938
1939{ "prometheus_stats_dir", NULL, STRING, "3.1.2" }
1940/* Directory to use for gathering prometheus statistics.  If specified,
1941   must be an absolute path.  If not specified, the default path
1942   $configdirectory/stats/ will be used.  It may be advantageous to locate this
1943   directory on ephemeral storage. */
1944
1945{ "proxy_authname", "proxy", STRING, "2.3.17" }
1946/* The authentication name to use when authenticating to a backend server
1947   in the Cyrus Murder. */
1948
1949{ "proxy_compress", 0, SWITCH, "2.3.17" }
1950/* Try to enable protocol-specific compression when performing a client
1951   connection to a backend server in the Cyrus Murder.
1952.PP
1953  Note that this should only be necessary over slow network
1954  connections.  Also note that currently only IMAP and MUPDATE support
1955  compression. */
1956
1957{ "proxy_password", NULL, STRING, "2.3.17" }
1958/* The default password to use when authenticating to a backend server
1959   in the Cyrus Murder.  May be overridden on a host-specific basis using
1960   the hostname_password option. */
1961
1962{ "proxy_realm", NULL, STRING, "2.3.17" }
1963/* The authentication realm to use when authenticating to a backend server
1964   in the Cyrus Murder */
1965
1966{ "proxyd_allow_status_referral", 0, SWITCH, "2.3.17" }
1967/* Set to true to allow proxyd to issue referrals to clients that support it
1968   when answering the STATUS command.  This is disabled by default since
1969   some clients issue many STATUS commands in a row, and do not cache the
1970   connections that these referrals would cause, thus resulting in a higher
1971   authentication load on the respective backend server. */
1972
1973{ "proxyd_disable_mailbox_referrals", 0, SWITCH, "2.3.17" }
1974/* Set to true to disable the use of mailbox-referrals on the
1975   proxy servers. */
1976
1977{ "proxyservers", NULL, STRING, "2.3.17" }
1978/* A list of users and groups that are allowed to proxy for other
1979   users, separated by spaces.  Any user listed in this will be
1980   allowed to login for any other user: use with caution.
1981   In a standard murder this option should ONLY be set on backends.
1982   DO NOT SET on frontends or things won't work properly. */
1983
1984{ "pts_module", "afskrb", STRINGLIST("afskrb", "ldap"), "2.3.17" }
1985/* The PTS module to use. */
1986
1987{ "ptloader_sock", NULL, STRING, "2.3.17" }
1988/* Unix domain socket that ptloader listens on.
1989   (defaults to configdirectory/ptclient/ptsock) */
1990
1991{ "ptscache_db", "twoskip", STRINGLIST("skiplist", "twoskip", "zeroskip"), "3.1.6" }
1992/* The cyrusdb backend to use for the pts cache. */
1993
1994{ "ptscache_db_path", NULL, STRING, "2.5.0" }
1995/* The absolute path to the ptscache db file.  If not specified,
1996   will be configdirectory/ptscache.db */
1997
1998{ "ptscache_timeout", "3h", DURATION, "3.1.8" }
1999/* The timeout for the PTS cache database when using the auth_krb_pts
2000   authorization method (default: 3 hours).
2001.PP
2002   For backward compatibility, if no unit is specified, seconds is
2003   assumed. */
2004
2005{ "ptskrb5_convert524", 1, SWITCH, "2.3.16" }
2006/* When using the AFSKRB ptloader module with Kerberos 5 canonicalization,
2007   do the final 524 conversion to get a n AFS style name (using '.' instead
2008   of '/', and using short names */
2009
2010{ "ptskrb5_strip_default_realm", 1, SWITCH, "2.3.17" }
2011/* When using the AFSKRB ptloader module with Kerberos 5 canonicalization,
2012   strip the default realm from the userid (this does not affect the stripping
2013   of realms specified by the afspts_localrealms option) */
2014
2015{ "qosmarking", "cs0", ENUM("cs0", "cs1", "cs2", "cs3", "cs4", "cs5", "cs6", "cs7", "af11", "af12", "af13", "af21", "af22", "af23", "af31", "af32", "af33", "af41", "af42", "af43", "ef"), "2.5.0" }
2016/* This specifies the Class Selector or Differentiated Services Code Point
2017   designation on IP headers (in the ToS field). */
2018
2019{ "quota_db", "quotalegacy", STRINGLIST("flat", "skiplist", "sql", "quotalegacy", "twoskip", "zeroskip"), "3.1.6" }
2020/* The cyrusdb backend to use for quotas. */
2021
2022{ "quota_db_path", NULL, STRING, "2.5.0" }
2023/* The absolute path for the quota database (if you choose a single-file
2024   quota DB type - or the base path if you choose quotalegacy).  If
2025   not specified will be configdirectory/quotas.db or configdirectory/quota/ */
2026
2027{ "quota_use_conversations", 0, SWITCH, "3.3.0" }
2028/* If conversations it enabled and quotaroot is a user folder, use the
2029   conversations quota counts, which count multiple copies of exactly the
2030   same message (by GUID) as only one */
2031
2032{ "quotawarn", 90, INT, "2.3.17" }
2033/* The percent of quota utilization over which the server generates
2034   warnings. */
2035
2036{ "quotawarnkb", 0, INT, "2.3.17" }
2037/* The maximum amount of free space (in kB) at which to give a quota
2038   warning (if this value is 0, or if the quota is smaller than this
2039   amount, then warnings are always given). */
2040
2041{ "quotawarnmsg", 0, INT, "2.5.0" }
2042/* The maximum amount of messages at which to give a quota warning
2043   (if this value is 0, or if the quota is smaller than this
2044   amount, then warnings are always given). */
2045
2046{ "readonly", 0, SWITCH, "3.3.0" }
2047/* If enabled, all IMAP, POP and JMAP connections are read-only,
2048 * no writes allowed */
2049
2050{ "reject8bit", 0, SWITCH, "2.3.17" }
2051/* If enabled, lmtpd rejects messages with 8-bit characters in the
2052   headers. */
2053
2054{ "restore_authname", NULL, STRING, "3.0.0" }
2055/* The authentication used by the restore tool when authenticating
2056   to an IMAP/sync server. */
2057
2058{ "restore_password", NULL, STRING, "3.0.0" }
2059/* The password used by the restore tool when authenticating to an
2060   IMAP/sync server. */
2061
2062{ "restore_realm", NULL, STRING, "3.0.0" }
2063/* The authentication realm used by the restore tool when
2064   authenticating to an IMAP/sync server. */
2065
2066{ "reverseacls", 0, SWITCH, "3.0.0" }
2067/* At startup time, ctl_cyrusdb -r will check this value and it
2068   will either add or remove reverse ACL pointers from mailboxes.db */
2069
2070{ "reverseuniqueids", 1, SWITCH, "3.3.0" }
2071/* At startup time, ctl_cyrusdb -r will check this value and it
2072   will either add or remove reverse UNIQUEID pointers from mailboxes.db */
2073
2074{ "rfc2046_strict", 0, SWITCH, "2.3.17" }
2075/* If enabled, imapd will be strict (per RFC 2046) when matching MIME
2076   boundary strings.  This means that boundaries containing other
2077   boundaries as substrings will be treated as identical.  Since
2078   enabling this option will break some messages created by Eudora 5.1
2079   (and earlier), it is recommended that it be left disabled unless
2080   there is good reason to do otherwise. */
2081
2082{ "rfc2047_utf8", 0, SWITCH, "3.0.0" }
2083/* If enabled, imapd will parse any non-encoded character sequence in
2084   MIME header values as UTF8. This is useful for installations that
2085   either advertise the UTF8SMTP (RFC 5335) extension or receive mails
2086   with improperly escaped UTF-8 byte sequences. It is recommended that
2087   this option is left disabled unless there is good reason to do
2088   otherwise. */
2089
2090{ "rfc3028_strict", 1, SWITCH, "2.3.17" }
2091/* If enabled, Sieve will be strict (per RFC 3028) with regards to
2092   which headers are allowed to be used in address and envelope tests.
2093   This means that only those headers which are defined to contain addresses
2094   will be allowed in address tests and only "to" and "from" will be
2095   allowed in envelope tests.  When disabled, ANY grammatically correct header
2096   will be allowed. */
2097
2098{ "rss_feedlist_template", NULL, STRING, "2.5.0" }
2099/* File containing HTML that will be used as a template for displaying
2100   the list of available RSS feeds.  A single instance of the variable
2101   %RSS_FEEDLIST% should appear in the file, which will be replaced by
2102   a nested unordered list of feeds.  The toplevel unordered list will
2103   be tagged with an id of "feed" (<ul id='feed'>) which can be used
2104   by stylesheet(s) in your template.  The dynamically created list of
2105   feeds based on the HTML template will be accessible at the "/rss"
2106   URL on the server. */
2107
2108{ "rss_feeds", "*", STRING, "2.5.0" }
2109/* A wildmat pattern specifying which mailbox hierarchies should be
2110   treated as RSS feeds.  Only mailboxes matching the wildmat will
2111   have their messages available via RSS.  If not set, a default
2112   wildmat of "*" (ALL mailboxes) will be used. */
2113
2114{ "rss_maxage", NULL, DURATION, "3.1.8" }
2115/* Maximum age of items to display in an RSS channel.  If non-zero,
2116   httpd will only display items received within this time period.
2117   If set to 0, all available items will be displayed (the default).
2118.PP
2119   For backward compatibility, if no unit is specified, days is
2120   assumed. */
2121
2122{ "rss_maxitems", 0, INT, "2.5.0" }
2123/* Maximum number of items to display in an RSS channel.  If non-zero,
2124   httpd will display no more than the \fIrss_maxitems\fR most recent
2125   items.  If set to 0, all available items will be displayed (the
2126   default). */
2127
2128{ "rss_maxsynopsis", 0, INT, "2.5.0" }
2129/* Maximum RSS item synopsis length.  If non-zero, httpd will display
2130   no more than the first \fIrss_maxsynopsis\fR characters of an
2131   item's synopsis.  If set to 0, the entire synopsis will be
2132   displayed (the default). */
2133
2134{ "rss_realm", NULL, STRING, "2.5.0" }
2135/* The realm to present for HTTP authentication of RSS feeds.  If not
2136   set (the default), the value of the "servername" option will be
2137   used.*/
2138
2139# Commented out - used by libsasl
2140# { "sasl_auto_transition", 0, SWITCH, "2.3.17" }
2141/* If enabled, the SASL library will automatically create authentication
2142   secrets when given a plaintext password.  See the SASL documentation. */
2143
2144{ "sasl_maximum_layer", 256, INT, "2.3.17" }
2145/* Maximum SSF (security strength factor) that the server will allow a
2146   client to negotiate. */
2147
2148{ "sasl_minimum_layer", 0, INT, "2.3.17" }
2149/* The minimum SSF that the server will allow a client to negotiate.
2150   A value of 1 requires integrity protection; any higher value
2151   requires some amount of encryption. */
2152
2153# Commented out - used by libsasl
2154# { "sasl_option", 0, STRING, "2.3.17" }
2155/* Any SASL option can be set by preceding it with \fBsasl_\fR.  This
2156   file overrides the SASL configuration file. */
2157
2158# Commented out - used by libsasl
2159# { "sasl_pwcheck_method", NULL, STRING, "2.3.17" }
2160/* The mechanism used by the server to verify plaintext passwords.
2161   Possible values include "auxprop", "saslauthd", and "pwcheck". */
2162
2163{ "search_batchsize", 20, INT, "3.0.0" }
2164/* The number of messages to be indexed in one batch (default 20).
2165   Note that long batches may delay user commands or mail delivery. */
2166
2167{ "search_attachment_extractor_url", NULL, STRING, "3.3.1" }
2168/* A HTTP or HTTPS URL to extract search text from rich text attachments
2169   and other media during search indexing. The server at this URL must
2170   implement the following protocol:
2171
2172   1. For each attachment of an email, Cyrus sends a GET request to the
2173   URL <extractor-url>/<cyrus-id>, where <extractor-url> is the
2174   configured URL and <cyrus-id> is a Cyrus-chosen path segment that
2175   uniquely identifies this attachment.
2176
2177   2. If the extractor already has a cached plain text extract of the
2178   attachment identified by <cyrus-id> then it may return HTTP status
2179   code 200 (OK) and the plain text extract with a Content-Type
2180   "text/plain" header. Otherwise it must return HTTP status 404 (Not Found).
2181
2182   3. If Cyrus receives the HTTP status code 404 (Not Found), then it sends
2183   a PUT request to the same URL as previously. The PUT request body
2184   contains the decoded, binary body of the attachment. The Content-Type
2185   request header has the same value as declared in the MIME part
2186   headers, including any type parameters.
2187
2188   4. The extractor must return the plain text extract with either HTTP status
2189   200 (OK) or 201 (Created) and a Content-Type "text/plain" header.
2190   If no text can be extracted, then the extractor may return any return code
2191   in the range 4xx, or 200 and an empty response body.
2192
2193   Any other HTTP status code is treated as an error. For performance
2194   reasons, the Cyrus indexer attempts to keep-alive the TCP connection
2195   to the extractor.
2196   Xapian only.
2197 */
2198
2199{ "search_index_language", 0, SWITCH, "3.3.1" }
2200/*
2201  If enabled, then messages bodies are stemmed by detected language
2202  in addition to the default English stemmer.
2203  Xapian only.
2204 */
2205
2206{ "search_index_parts", 0, SWITCH, "3.2.1", "3.2.1" }
2207/*
2208  Deprecated. No longer used.
2209 */
2210
2211{ "search_index_skip_domains", NULL, STRING, "3.3.1" }
2212/*
2213 A space separated list of domains - if set, any users in the listed domains
2214 will be skipped when indexing.
2215 */
2216
2217{ "search_index_skip_users", NULL, STRING, "3.3.1" }
2218/*
2219 A space separated list of usernames - if set, any users in the list
2220 will be skipped when indexing.
2221 */
2222
2223{ "search_query_language", 0, SWITCH, "3.3.0", "3.3.0" }
2224/*
2225  Deprecated. No longer used.
2226 */
2227
2228{ "search_normalisation_max", 1000, INT, "3.0.0" }
2229/* A resource bound for the combinatorial explosion of search expression
2230   tree complexity caused by normalising expressions with many OR nodes.
2231   These can use more CPU time to optimise than they save IO time in scanning
2232   folders. */
2233
2234{ "search_engine", "none", ENUM("none", "squat", "xapian"), "3.1.2" }
2235/* The indexing engine used to speed up searching.  */
2236
2237{ "search_fuzzy_always", 0, SWITCH, "3.1.5" }
2238/* Whether to enable RFC 6203 FUZZY search for all IMAP SEARCH. If turned
2239   on, search attributes will be searched using FUZZY search by default.
2240   If turned off, clients have to explicitly use the FUZZY search key to
2241   enable fuzzy search for regular SEARCH commands. */
2242
2243{ "search_index_headers", 1, SWITCH, "3.0.0" }
2244/* Whether to index headers other than From, To, Cc, Bcc, and Subject.
2245   Experiment shows that some headers such as Received and DKIM-Signature
2246   can contribute up to 2/3rds of the index size but almost nothing to
2247   the utility of searching.  Note that if header indexing is disabled,
2248   headers can still be searched, the searches will just be slower.
2249 */
2250
2251{ "search_indexed_db", "twoskip", STRINGLIST("flat", "skiplist", "twoskip", "zeroskip"), "3.1.6" }
2252/* The cyrusdb backend to use for the search latest indexed uid state.  Xapian only. */
2253
2254{ "search_maxtime", NULL, STRING, "3.0.0" }
2255/* The maximum number of seconds to run a search for before aborting.  Default
2256   of no value means search "forever" until other timeouts. */
2257
2258{ "search_queryscan", 5000, INT, "3.1.7" }
2259/* The minimum number of records require to do a direct scan of all G keys
2260 * rather than indexed lookups.  A value of 0 means always do indexed lookups.
2261 */
2262
2263{ "search_skipdiacrit", 1, SWITCH, "2.5.0" }
2264/* When searching, should diacriticals be stripped from the search
2265   terms.  The default is "true", a search for "hav" will match
2266   "Håvard".  This is not RFC 5051 compliant, but it backwards
2267   compatible, and may be preferred by some sites. */
2268
2269{ "search_skiphtml", 0, SWITCH, "3.0.0" }
2270/* If enabled, HTML parts of messages are skipped, i.e. not indexed and
2271   not searchable.  Otherwise, they're indexed.  */
2272
2273{ "search_whitespace", "merge", ENUM("skip", "merge", "keep"), "2.5.0" }
2274/* When searching, how whitespace should be handled.  Options are:
2275   "skip" (default in 2.3 and earlier series) - where a search for
2276   "equi" would match "the quick brown fox".  "merge" - the default,
2277   where "he  qu" would match "the quick   brownfox", and "keep",
2278   where whitespace must match exactly.  The default of "merge" is
2279   recommended for most cases - it's a good compromise which
2280   keeps words separate. */
2281
2282{ "search_snippet_length", 255, INT, "3.0.0" }
2283/* The maximum byte length of a snippet generated by the XSNIPPETS
2284   command. Only supported by the Xapian search backend, which
2285   attempts to always fill search_snippet_length bytes in the
2286   generated snippet. */
2287
2288{ "search_stopword_path", NULL, STRING, "3.1.7" }
2289/* The absolute base path to the search stopword lists. If not specified,
2290   no stopwords will be taken into account during search indexing. Currently,
2291   the only supported and default stop word file is english.txt. */
2292
2293# Commented out - there's no such thing as "searchpartition-name",
2294# but we need this for the man page
2295# { "searchpartition-name", NULL, STRING, "3.1.4" }
2296/* The pathname where to store the xapian search indexes of \fIsearchtier\fR
2297   for mailboxes of partition \fIname\fR. This must be configured for the
2298   \fIdefaultsearchtier\fR and any additional search tier (see squatter for
2299   details).
2300.PP
2301   For example: if \fIdefaultpartition\fR is defined as part1 and
2302   \fIdefaultsearchtier\fR as tier1 then the configuration must contain
2303   an entry \fItier1searchpartition-part1\fR that defines the path where to
2304   store this tier1's search index for the part1 partition.
2305.PP
2306   This option MUST be specified for xapian search. */
2307
2308{ "seenstate_db", "twoskip", STRINGLIST("flat", "skiplist", "twoskip", "zeroskip"), "3.1.6" }
2309/* The cyrusdb backend to use for the seen state. */
2310
2311{ "sendmail", "/usr/sbin/sendmail", STRING, "2.3.17" }
2312/* The pathname of the sendmail executable.  Sieve invokes sendmail
2313   for sending rejections, redirects and vacation responses. */
2314
2315{ "sendmail_auth_id", "CYRUS_SENDMAIL_AUTH_ID", STRING, "3.1.3" }
2316/* The name of an environment variable to set when invoking sendmail.
2317   The value of this environment variable will contain the user id
2318   of the currently authenticated user. If no user is authenticated
2319   the environment variable is not set. */
2320
2321{ "serverlist", NULL, STRING, "2.3.17" }
2322/* Whitespace separated list of backend server names.  Used for
2323   finding server with the most available free space for proxying
2324   CREATE. */
2325
2326{ "serverlist_select_mode", "freespace-most", STRINGLIST("random", "freespace-most", "freespace-percent-most", "freespace-percent-weighted", "freespace-percent-weighted-delta"), "2.5.0" }
2327/* Server selection mode.
2328.PP
2329.IP \fIrandom\fR 5
2330(pseudo-)random selection
2331.\"
2332.IP \fIfreespace-most\fR 5
2333backend with the most (total) free space (KiB)
2334.\"
2335.IP \fIfreespace-percent-most\fR 5
2336backend whose partition has the most free space (%)
2337.\"
2338.IP \fIfreespace-percent-weighted\fR 5
2339same as for partition selection, comparing the free space (%) of the least used
2340partition of each backend
2341.\"
2342.IP \fIfreespace-percent-weighted-delta\fR 5
2343same as for partition selection, comparing the free space (%) of the least used
2344partition of each backend.
2345.PP
2346 */
2347
2348{ "serverlist_select_usage_reinit", 0, INT, "2.5.0" }
2349/* For a given session, number of \fBoperations\fR (e.g. backend selection)
2350   for which backend usage data are cached. */
2351
2352{ "serverlist_select_soft_usage_limit", 0, INT, "2.5.0" }
2353/* Limit of backend usage (%): if a backend is over that limit, it is
2354   automatically excluded from selection mode.
2355.PP
2356If all backends are over that limit, this feature is not used anymore.
2357 */
2358
2359{ "servername", NULL, STRING, "2.3.17" }
2360/* This is the hostname visible in the greeting messages of the POP,
2361   IMAP and LMTP daemons. If it is unset, then the result returned
2362   from gethostname(2) is used.  This is also the value used by murder
2363   clusters to identify the host name.  It should be resolvable by
2364   DNS to the correct host, and unique within an active cluster.  If
2365   you are using low level replication (e.g. drbd) then it should be
2366   the same on each copy and the DNS name should also be moved to
2367   the new master on failover. */
2368
2369{ "serverinfo", "on", ENUM("off", "min", "on"), "2.3.17" }
2370/* The server information to display in the greeting and capability
2371   responses. Information is displayed as follows:
2372
2373.IP
2374   "off" = no server information in the greeting or capabilities
2375.br
2376   "min" = \fIservername\fR in the greeting; no server information in the capabilities
2377.br
2378   "on" = \fIservername\fR and product version in the greeting;
2379product version in the capabilities
2380.PP
2381*/
2382
2383{ "sharedprefix", "Shared Folders", STRING, "2.3.17" }
2384/* If using the alternate IMAP namespace, the prefix for the shared
2385   namespace.  The hierarchy delimiter will be automatically appended.
2386*/
2387
2388{ "sieve_allowreferrals", 1, SWITCH, "2.3.17" }
2389/* If enabled, timsieved will issue referrals to clients when the
2390   user's scripts reside on a remote server (in a Murder).
2391   Otherwise, timsieved will proxy traffic to the remote server. */
2392
2393{ "sieve_duplicate_max_expiration", "90d", DURATION, "3.1.8" }
2394/* Maximum expiration time for duplicate message tracking records.
2395.PP
2396   For backward compatibility, if no unit is specified, seconds is
2397   assumed. */
2398*/
2399
2400{ "sieve_extensions", "fileinto reject vacation vacation-seconds notify include envelope environment body relational regex subaddress copy date index imap4flags mailbox mboxmetadata servermetadata variables editheader extlists duplicate ihave fcc special-use redirect-dsn redirect-deliverby mailboxid vnd.cyrus.log vnd.cyrus.jmapquery snooze", BITFIELD("fileinto", "reject", "vacation", "vacation-seconds", "notify", "include", "envelope", "environment", "body", "relational", "regex", "subaddress", "copy", "date", "index", "imap4flags=imapflags", "mailbox", "mboxmetadata", "servermetadata", "variables", "editheader", "extlists", "duplicate", "ihave", "fcc", "special-use", "redirect-dsn", "redirect-deliverby", "mailboxid", "vnd.cyrus.log=x-cyrus-log", "vnd.cyrus.jmapquery=x-cyrus-jmapquery", "snooze=vnd.cyrus.snooze=x-cyrus-snooze"), "3.3.1" }
2401/* Space-separated list of Sieve extensions allowed to be used in
2402   sieve scripts, enforced at submission by timsieved(8).  Any
2403   previously installed script will be unaffected by this option and
2404   will continue to execute regardless of the extensions used.  This
2405   option has no effect on options that are disabled at compile time
2406   (e.g., "regex"). */
2407
2408{ "sieve_maxscriptsize", 32, INT, "2.3.17" }
2409/* Maximum size (in kilobytes) any sieve script can be, enforced at
2410   submission by timsieved(8). */
2411
2412{ "sieve_maxscripts", 5, INT, "2.3.17" }
2413/* Maximum number of sieve scripts any user may have, enforced at
2414   submission by timsieved(8). */
2415
2416{ "sieve_utf8fileinto", 0, SWITCH, "2.3.17" }
2417/* If enabled, the sieve engine expects folder names for the
2418   \fIfileinto\fR action in scripts to use UTF8 encoding.  Otherwise,
2419   modified UTF7 encoding should be used. */
2420
2421{ "sieve_sasl_send_unsolicited_capability", 0, SWITCH, "2.3.17" }
2422/* If enabled, timsieved will emit a capability response after a successful
2423   SASL authentication, per draft-martin-managesieve-12.txt . */
2424
2425{ "sieve_use_lmtp_reject", 1, SWITCH, "3.1.1" }
2426/* Enabled by default.  If reject can be done via LMTP, then return a 550
2427   rather than generating the bounce message in Cyrus. */
2428
2429{ "sieve_vacation_min_response", "3d", DURATION, "3.1.8" }
2430/* Minimum time interval between consecutive vacation responses, per
2431   draft-ietf-vacation-seconds.txt.  The default is 3 days.
2432.PP
2433   For backward compatibility, if no unit is specified, seconds is
2434   assumed. */
2435
2436{ "sieve_vacation_max_response", "90d", DURATION, "3.1.8" }
2437/* Maximum time interval between consecutive vacation responses, per
2438   draft-ietf-vacation-seconds.txt.  The default is 90 days.  The
2439   minimum is 7 days.
2440.PP
2441   For backward compatibility, if no unit is specified, seconds is
2442   assumed. */
2443
2444{ "sievedir", "/var/imap/sieve", STRING, "2.3.17" }
2445/* If sieveusehomedir is false, this directory is searched for Sieve
2446   scripts. */
2447
2448{ "sievenotifier", NULL, STRING, "2.3.17" }
2449/* Notifyd(8) method to use for "SIEVE" notifications.  If not set, "SIEVE"
2450   notifications are disabled.
2451.PP
2452   This method is only used when no method is specified in the script. */
2453
2454{ "sieveusehomedir", 0, SWITCH, "2.3.17" }
2455/* If enabled, lmtpd will look for Sieve scripts in user's home
2456   directories: ~user/.sieve. */
2457
2458{ "anysievefolder", 0, SWITCH, "2.5.0" }
2459/* It must be "yes" in order to permit the autocreation of any INBOX subfolder
2460   requested by a sieve filter, through the "fileinto" action. (default = no) */
2461
2462{ "singleinstancestore", 1, SWITCH, "2.3.17" }
2463/* If enabled, imapd, lmtpd and nntpd attempt to only write one copy
2464   of a message per partition and create hard links, resulting in a
2465   potentially large disk savings. */
2466
2467{ "skiplist_always_checkpoint", 1, SWITCH, "2.3.17" }
2468/* If enabled, this option forces the skiplist cyrusdb backend to
2469   always checkpoint when doing a recovery.  This causes slightly
2470   more IO, but on the other hand leads to more efficient databases,
2471   and the entire file is already "hot". */
2472
2473{ "skiplist_unsafe", 0, SWITCH, "2.3.17" }
2474/* If enabled, this option forces the skiplist cyrusdb backend to
2475   not sync writes to the disk.  Enabling this option is NOT RECOMMENDED. */
2476
2477
2478{ "smtp_backend", "sendmail", STRINGLIST("host", "sendmail"), "3.1.4" }
2479/* The SMTP backend to use for sending email.
2480
2481   The \"host\" backend sends message submissions via
2482   a TCP socket to the SMTP host defined in the config
2483   option smtp_host.
2484
2485   The \"sendmail\" backend forks the Cyrus process into
2486   the executable defined in the config option sendmail.
2487   The executable must accept \"-bs\" as command line
2488   argument, read from stdin and must implement the minimum
2489   SMTP protocol as defined in section 4.5.1 of RFC 5321.
2490
2491   If the SMTP EHLO command reports AUTH (RFC 4954) as a
2492   supported extension, then the MAIL FROM command includes
2493   the AUTH parameter, with its value set to the name of any
2494   authenticated user which triggered the email. The AUTH
2495   parameter is omitted if the user is unknown to the calling
2496   process.
2497
2498   If the directory
2499   \fIconfigdirectory\fR/log/smtpclient.\ \fIsmtp_backend\fR
2500   exists, then telemetry logs for outgoing SMTP sessions will
2501   be created in this directory.
2502   */
2503
2504{ "smtp_host", "localhost:587", STRING, "3.1.4" }
2505/* The SMTP host to use for sending mail (also see the
2506   smtp_backend option). The value of this option must
2507   the name or IP address of a TCP host, followed optionally
2508   by a colon and the port or service to use. The default
2509   port is 587. TLS may be activated by appending \"/tls\"
2510   to the value. Authentication is enabled if smtp_auth_authname
2511   is set. Authentication can be explicitly disabled by appending
2512   \"/noauth\" to the host address. */
2513
2514{ "smtp_auth_authname", NULL, STRING, "3.1.4" }
2515/* The authentication name to use when authenticating to the SMTP
2516   server defined in smtp_host. */
2517
2518{ "smtp_auth_password", NULL, STRING, "3.1.4" }
2519/* The password to use when authenticating to the SMTP server defined
2520   in smtp_host. */
2521
2522{ "smtp_auth_realm", NULL, STRING, "3.1.4" }
2523/* The authentication SASL realm to use when authenticating to a SMTP
2524   server. */
2525
2526{ "soft_noauth", 1, SWITCH, "2.3.17" }
2527/* If enabled, lmtpd returns temporary failures if the client does not
2528   successfully authenticate.  Otherwise lmtpd returns permanent failures
2529   (causing the mail to bounce immediately). */
2530
2531{ "sortcache_db", "twoskip", STRINGLIST("skiplist", "twoskip", "zeroskip"), "3.1.6" }
2532/* The cyrusdb backend to use for caching sort results (currently only
2533   used for xconvmultisort) */
2534
2535{ "specialuse_extra", NULL, STRING, "2.5.0" }
2536/* Whitespace separated list of extra special-use attributes
2537   that can be set on a mailbox. RFC 6154 currently lists
2538   what special-use attributes can be set. This allows
2539   extending that list in the future or adding your own
2540   if needed. */
2541
2542{ "specialuse_protect", "\\Archive \\Drafts \\Important \\Junk \\Sent \\Trash", STRING, "3.1.7" }
2543/* Whitespace separated list of special-use attributes
2544   to protect the mailboxes for.  If set, don't allow
2545   mailboxes with these special use attributes to be deleted
2546   or renamed to have a different parent. Default is the built-in list*/
2547
2548{ "specialusealways", 1, SWITCH, "3.1.1" }
2549/* If enabled, this option causes LIST and LSUB output to always include
2550   the XLIST "special-use" flags */
2551
2552{ "sql_database", NULL, STRING, "2.3.17" }
2553/* Name of the database which contains the cyrusdb table(s). */
2554
2555{ "sql_engine", NULL, STRINGLIST("mysql", "pgsql", "sqlite"), "2.3.17" }
2556/* Name of the SQL engine to use. */
2557
2558{ "sql_hostnames", "", STRING, "2.3.17" }
2559/* Comma separated list of SQL servers (in host[:port] format). */
2560
2561{ "sql_passwd", NULL, STRING, "2.3.17" }
2562/* Password to use for authentication to the SQL server. */
2563
2564{ "sql_user", NULL, STRING, "2.3.17" }
2565/* Username to use for authentication to the SQL server. */
2566
2567{ "sql_usessl", 0, SWITCH, "2.3.17" }
2568/* If enabled, a secure connection will be made to the SQL server. */
2569
2570{ "srs_alwaysrewrite", 0,  SWITCH, "2.5.0" }
2571/* If true, perform SRS rewriting for ALL forwarding, even when not required. */
2572
2573{ "srs_domain", NULL, STRING, "3.1.2" }
2574/* The domain to use in rewritten addresses. This must point only to machines
2575   which know the encoding secret used by this system. When present, SRS is
2576   enabled. */
2577
2578{ "srs_hashlength", 0, INT, "3.1.2" }
2579/* The hash length to generate in a rewritten address. */
2580
2581{ "srs_secrets", NULL, STRING, "3.1.2" }
2582/* A list of secrets with which to generate addresses. */
2583
2584{ "srs_separator", NULL, STRING, "3.1.2" }
2585/* The separator to appear immediately after SRS[01] in rewritten addresses. */
2586
2587{ "srvtab", "", STRING, "2.3.17" }
2588/* The pathname of \fIsrvtab\fR file containing the server's private
2589   key.  This option is passed to the SASL library and overrides its
2590   default setting. */
2591
2592{ "submitservers", NULL, STRING, "2.3.17" }
2593/* A list of users and groups that are allowed to resolve "urlauth=submit+"
2594   IMAP URLs, separated by spaces.  Any user listed in this will be
2595   allowed to fetch the contents of any valid "urlauth=submit+" IMAP URL:
2596   use with caution. */
2597
2598{ "subscription_db", "flat", STRINGLIST("flat", "skiplist", "twoskip", "zeroskip"), "3.1.6" }
2599/* The cyrusdb backend to use for the subscriptions list. */
2600
2601{ "suppress_capabilities", NULL, STRING, "3.0.0" }
2602/* Suppress the named capabilities from any capability response.  Use the
2603   exact case as it appears in the response, e.g.
2604   "suppress_capabilities: ESEARCH QRESYNC WITHIN XLIST LIST-EXTENDED"
2605   if you have a murder with 2.3.x backends and don't want clients being
2606   confused by new capabilities that some backends don't support. */
2607
2608{ "statuscache", 0, SWITCH, "2.3.17" }
2609/* Enable/disable the imap status cache. */
2610
2611{ "statuscache_db", "twoskip", STRINGLIST("skiplist", "sql", "twoskip", "zeroskip"), "3.1.6" }
2612/* The cyrusdb backend to use for the imap status cache. */
2613
2614{ "statuscache_db_path", NULL, STRING, "2.5.0" }
2615/* The absolute path to the statuscache db file.  If not specified,
2616   will be configdirectory/statuscache.db */
2617
2618{ "sync_authname", NULL, STRING, "2.5.0" }
2619/* The authentication name to use when authenticating to a sync server.
2620   Prefix with a channel name to only apply for that channel */
2621
2622{ "sync_batchsize", 8192, INT, "3.0.0" }
2623/* the number of messages to upload in a single mailbox replication.
2624   Default is 8192.  If there are more than this many messages appended
2625   to the mailbox, generate a synthetic partial state and send that. */
2626
2627{ "sync_cache_db", "twoskip", STRINGLIST("skiplist", "sql", "twoskip", "zeroskip"), "3.3.1" }
2628/* The cyrusdb backend to use for the replication cache. */
2629
2630{ "sync_cache_db_path", NULL, STRING, "3.3.1" }
2631/* The path for the replication cache.  Prefix with a
2632   channel name to apply for that channel.  NOTE, it's
2633   quite important to have a different one per backend! */
2634
2635{ "sync_host", NULL, STRING, "2.5.0" }
2636/* Name of the host (replica running sync_server(8)) to which
2637   replication actions will be sent by sync_client(8).
2638   Prefix with a channel name to only apply for that channel */
2639
2640{ "sync_log", 0, SWITCH, "2.3.17" }
2641/* Enable replication action logging by lmtpd(8), imapd(8), pop3d(8),
2642   and nntpd(8).  The log {configdirectory}/sync/log is used by
2643   sync_client(8) for "rolling" replication. */
2644
2645{ "sync_log_chain", 0, SWITCH, "2.4.0" }
2646/* Enable replication action logging by sync_server as well, allowing
2647   chaining of replicas.  Use this on 'B' for A => B => C replication layout */
2648
2649{ "sync_log_channels", NULL, STRING, "2.5.0" }
2650/* If specified, log all events to multiple log files in directories
2651   specified by each "channel".  Each channel can then be processed
2652   separately, such as by multiple sync_client(8)s in a mesh replication
2653   scheme, or by squatter(8) for rolling search index updates.
2654   .PP
2655   You can use "" (the two-character string U+22 U+22) to mean the
2656   default sync channel. */
2657
2658{ "sync_log_unsuppressable_channels", "squatter", STRING, "2.5.0" }
2659/* If specified, the named channels are exempt from the effect of setting
2660   sync_log_chain:off, i.e. they are always logged to by the sync_server
2661   process.  This is only really useful to allow rolling search indexing
2662   on a replica. */
2663
2664{ "sync_password", NULL, STRING, "2.5.0" }
2665/* The default password to use when authenticating to a sync server.
2666   Prefix with a channel name to only apply for that channel */
2667
2668{ "sync_port", NULL, STRING, "3.0.0" }
2669/* Name of the service (or port number) of the replication service on
2670   replica host.  Prefix with a channel name to only apply for that
2671   channel.  If not specified, and if sync_try_imap is set to "yes"
2672   (the default), then the replication client will first try "imap"
2673   (port 143) to check if imapd supports replication.  otherwise it
2674   will default to "csync" (usually port 2005). */
2675
2676{ "sync_realm", NULL, STRING, "2.5.0" }
2677/* The authentication realm to use when authenticating to a sync server.
2678   Prefix with a channel name to only apply for that channel */
2679
2680{ "sync_repeat_interval", "1s", DURATION, "3.1.8" }
2681/* Minimum interval between replication runs in rolling replication
2682   mode. If a replication run takes longer than this time, we repeat
2683   immediately.  Prefix with a channel name to only apply for that
2684   channel.
2685.PP
2686   For backward compatibility, if no unit is specified, seconds is
2687   assumed. */
2688
2689{ "sync_rightnow_channel", NULL, STRING, "3.3.1" }
2690/* if set, run sync_client to this channel immediately.  As with channels,
2691   set this value to '""' to sync the default channel! */
2692
2693{ "sync_shutdown_file", NULL, STRING, "2.5.0" }
2694/* Simple latch used to tell sync_client(8) that it should shut down at the
2695   next opportunity. Safer than sending signals to running processes.
2696   Prefix with a channel name to only apply for that channel */
2697
2698{ "sync_timeout", "30m", DURATION, "3.1.8" }
2699/* How long to wait for a response before returning a timeout failure
2700   when talking to a replication peer (client or server).  The minimum
2701   duration is 3 seconds, the default is 30 minutes.
2702.PP
2703   For backward compatibility, if no unit is specified, seconds is
2704   assumed. */
2705
2706{ "sync_try_imap", 1, SWITCH, "3.0.0" }
2707/* Whether sync_client should try to perform an IMAP connection
2708   before falling back to csync.  If this is set to "no",
2709   sync_client will only use csync.  Prefix with a channel name to
2710   apply only for that channel */
2711
2712{ "syslog_prefix", NULL, STRING, "3.1.8" }
2713/* String to be prepended to the process name in syslog entries. Can
2714   be further overridden by setting the $CYRUS_SYSLOG_PREFIX environment
2715   variable.
2716.PP
2717   Using the $CYRUS_SYSLOG_PREFIX environment variable has the additional
2718   advantage that it can be set before the \fBimapd.conf\fR is read, so
2719   errors while reading the config file can be syslogged with the correct
2720   prefix. */
2721
2722{ "syslog_facility", NULL, STRING, "2.5.0" }
2723/* Configure a syslog facility.  The default is whatever is compiled
2724   in.  Allowed values are: DAEMON, MAIL, NEWS, USER, and LOCAL0
2725   through to LOCAL7 */
2726
2727{ "tcp_keepalive", 0, SWITCH, "2.4.0" }
2728/* Enable keepalive on TCP connections */
2729
2730{ "tcp_keepalive_cnt", 0, INT, "2.4.0" }
2731/* Number of TCP keepalive probes to send before declaring the
2732   connection dead (0 == system default) */
2733
2734{ "tcp_keepalive_idle", "0", DURATION, "3.1.8" }
2735/* How long a connection must be idle before keepalive probes are sent
2736   (0 == system default).
2737.PP
2738   For backward compatibility, if no unit is specified, seconds is
2739   assumed. */
2740
2741{ "tcp_keepalive_intvl", "0", DURATION, "3.1.8" }
2742/* Time between keepalive probes (0 == system default).
2743.PP
2744   For backward compatibility, if no unit is specified, seconds is
2745   assumed. */
2746
2747{ "temp_path", "/tmp", STRING, "3.3.0" }
2748/* The pathname to store temporary files in. It is recommended to
2749   use an in-memory filesystem such as tmpfs for this path. */
2750
2751{ "telemetry_bysessionid", 0, SWITCH, "3.0.0" }
2752/* If true, log by sessionid instead of PID for telemetry */
2753
2754{ "timeout", "32m", DURATION, "3.1.8" }
2755/* The length of the IMAP server's inactivity autologout timer.
2756   The minimum value is 30 minutes.  The default is 32 minutes,
2757   to allow a bit of leeway for clients that try to NOOP every
2758   30 minutes.
2759.PP
2760   For backward compatibility, if no unit is specified, minutes
2761   is assumed. */
2762
2763{ "imapidletimeout", NULL, DURATION, "3.1.8" }
2764/* Timeout for idling clients (RFC 2177).  If not set (the default),
2765   the value of "timeout" will be used instead.
2766.PP
2767   For backward compatibility, if no unit is specified, minutes
2768   is assumed. */
2769
2770{ "tls_ca_file", NULL, STRING, "2.5.0", "2.5.0", "tls_client_ca_file" }
2771/* Deprecated in favor of \fItls_client_ca_file\fR. */
2772
2773{ "tls_ca_path", NULL, STRING, "2.5.0", "2.5.0", "tls_client_ca_dir" }
2774/* Deprecated in favor of \fItls_client_ca_dir\fR. */
2775
2776{ "tlscache_db", "twoskip", STRINGLIST("skiplist", "sql", "twoskip", "zeroskip"), "2.5.0", "2.5.0", "tls_sessions_db" }
2777/* Deprecated in favor of \fItls_sessions_db\fR. */
2778
2779{ "tlscache_db_path", NULL, STRING, "2.5.0", "2.5.0", "tls_sessions_db_path" }
2780/* Deprecated in favor of \fItls_sessions_db_path\fR. */
2781
2782{ "tls_cert_file", NULL, STRING, "2.5.0", "2.5.0", "tls_server_cert" }
2783/* Deprecated in favor of \fItls_server_cert\fR. */
2784
2785{ "tls_cipher_list", "DEFAULT", STRING, "2.5.0", "2.5.0", "tls_ciphers" }
2786/* Deprecated in favor of \fItls_ciphers\fR. */
2787
2788{ "tls_ciphers", "DEFAULT", STRING, "2.5.0" }
2789/* The list of SSL/TLS ciphers to allow.  The format of the string
2790   (and definition of "DEFAULT") is described in \fBciphers(1)\fR.
2791.PP
2792   See also Mozilla's server-side TLS recommendations:
2793.PP
2794   https://wiki.mozilla.org/Security/Server_Side_TLS */
2795
2796{ "tls_crl_file", NULL, STRING, "3.1.2" }
2797/* Path to a file containing the Certificate Revocation List */
2798
2799{ "tls_client_ca_dir", NULL, STRING, "2.5.0" }
2800/* Path to a directory containing the CA certificates used to verify
2801   client SSL certificates used for authentication. */
2802
2803{ "tls_client_ca_file", NULL, STRING, "2.5.0" }
2804/* Path to a file containing the CA certificate(s) used to verify
2805   client SSL certificates used for authentication. */
2806
2807{ "tls_client_cert", NULL, STRING, "2.5.0" }
2808/* File containing the certificate presented to a server for authentication
2809   during STARTTLS. A value of "disabled" will disable this server's use
2810   of certificate-based authentication. */
2811
2812{ "tls_client_certs", "optional", ENUM("off", "optional", "require"), "2.5.0" }
2813/* Disable ("off"), allow ("optional", default) or require ("require") the
2814   use of SSL certificates by clients to authenticate themselves. */
2815
2816{ "tls_client_key", NULL, STRING, "2.5.0" }
2817/* File containing the private key belonging to the tls_client_cert
2818   certificate. A value of "disabled" will disable this server's use
2819   of certificate-based authentication. */
2820
2821{ "tls_eccurve", "prime256v1", STRING, "2.5.0" }
2822/* The elliptic curve used for ECDHE. Default is NIST Suite B prime256.
2823   See 'openssl ecparam -list_curves' for possible values. */
2824
2825{ "tls_key_file", NULL, STRING, "2.5.0", "2.5.0", "tls_server_key" }
2826/* Deprecated in favor of \fItls_server_key\fR. */
2827
2828{ "tls_required", 0, SWITCH, "3.0.0" }
2829/* If enabled, require a TLS/SSL encryption layer to be negotiated
2830   prior to ANY authentication mechanisms being advertised or allowed. */
2831
2832{ "tls_prefer_server_ciphers", 0, SWITCH, "2.5.0" }
2833/* Prefer the ciphers on the server side instead of client side. */
2834
2835{ "tls_server_ca_dir", NULL, STRING, "2.5.0" }
2836/* Path to a directory with CA certificates used to verify certificates
2837   offered by the server, when cyrus acts as client. This directory must
2838   have filenames with the hashed value of the certificates (see
2839   openssl(1)). */
2840
2841{ "tls_server_ca_file", NULL, STRING, "2.5.0" }
2842/* Path to a file containing CA certificates used to verify certificates
2843   offered by the server, when cyrus acts as client. */
2844
2845{ "tls_server_cert", NULL, STRING, "3.1.8" }
2846/* File containing the certificate, including the full chain, presented to clients.
2847   Two certificates can be set, e.g RSA and EC, if the filenames are separated with
2848   comma without spaces. */
2849
2850{ "tls_server_dhparam", NULL, STRING, "3.1.4" }
2851/* File containing the DH parameters belonging to the certificate in
2852   tls_server_cert. */
2853
2854{ "tls_server_key", NULL, STRING, "3.1.8" }
2855/* File containing the private key belonging to the certificate in
2856   tls_server_cert.  If not set, tls_server_cert must contain both private and
2857   public key.  Two files with keys can be set, if two certificates are used, in
2858   which case the files must be separated with comma without spaces */
2859
2860{ "tls_sessions_db", "twoskip", STRINGLIST("skiplist", "sql", "twoskip", "zeroskip"), "3.1.6" }
2861/* The cyrusdb backend to use for the TLS cache. */
2862
2863{ "tls_sessions_db_path", NULL, STRING, "2.5.0" }
2864/* The absolute path to the TLS sessions db file. If not specified,
2865   will be configdirectory/tls_sessions.db */
2866
2867{ "tls_session_timeout", "24h", DURATION, "3.1.8" }
2868/* The length of time that a TLS session will be cached for later
2869   reuse.  The maximum value is 24 hours, also the default.  A
2870   value of 0 will disable session caching.
2871.PP
2872   For backward compatibility, if no unit is specified, minutes is
2873   assumed. */
2874
2875{ "tls_versions", "tls1_0 tls1_1 tls1_2 tls1_3", STRING, "3.1.8" }
2876/* A list of SSL/TLS versions to not disable. Cyrus IMAP SSL/TLS starts
2877   with all protocols, and subtracts protocols not in this list. Newer
2878   versions of SSL/TLS will need to be added here to allow them to get
2879   disabled. */
2880
2881{ "uidl_format", "cyrus", ENUM("uidonly", "cyrus", "dovecot", "courier"), "3.0.0" }
2882/* Choose the format for UIDLs in pop3.  Possible values are "uidonly",
2883   "cyrus", "dovecot" and "courier".  "uidonly" forces the old default
2884   of UID, "cyrus" is UIDVALIDITY.UID.  Dovecot is 8 digits of leading
2885   hex (lower case) each UID UIDVALIDITY. Courier is UIDVALIDITY-UID. */
2886
2887{ "umask", "077", STRING, "2.3.17" }
2888/* The umask value used by various Cyrus IMAP programs. */
2889
2890{ "userdeny_db", "flat", STRINGLIST("flat", "skiplist", "sql", "twoskip", "zeroskip"), "3.1.6" }
2891/* The cyrusdb backend to use for the user access list. */
2892
2893{ "userdeny_db_path", NULL, STRING, "2.5.0" }
2894/* The absolute path to the userdeny db file.  If not specified,
2895   will be configdirectory/user_deny.db */
2896
2897{ "username_tolower", 1, SWITCH, "2.3.17" }
2898/* Convert usernames to all lowercase before login/authentication.  This
2899   is useful with authentication backends which ignore case during
2900   username lookups (such as LDAP).  */
2901
2902{ "userprefix", "Other Users", STRING, "2.3.17" }
2903/* If using the alternate IMAP namespace, the prefix for the other users
2904   namespace.  The hierarchy delimiter will be automatically appended. */
2905
2906# xxx badly worded
2907{ "unix_group_enable", 1, SWITCH, "2.3.17" }
2908/* Should we look up groups when using auth_unix (disable this if you are
2909   not using groups in ACLs for your IMAP server, and you are using auth_unix
2910   with a backend (such as LDAP) that can make getgrent() calls very
2911   slow) */
2912
2913{ "unixhierarchysep", 1, SWITCH, "3.0.0" }
2914/* Use the UNIX separator character '/' for delimiting levels of
2915   mailbox hierarchy.  Turn off to use the netnews separator
2916   character '.'. Note that with the newnews separator, no dots may
2917   occur in mailbox names.  The default switched in 3.0 from off to on. */
2918
2919{ "virtdomains", "off", ENUM("off", "userid", "on"), "3.1.8" }
2920/* Configure virtual domain support.
2921.PP
2922.IP off
2923Cyrus does not know or care about domains. Only the local part of email
2924addresses is ever considered.  This is not recommended for any deployment,
2925but is currently the default.
2926.\"
2927.IP userid
2928The user's domain is determined by splitting a fully qualified userid at the
2929last '@' or '%' symbol.  If the userid is unqualified, the \fIdefaultdomain\fR
2930will be used.  This is the recommended configuration for all deployments.
2931If you wish to provide calendaring services you must use this configuration.
2932.\"
2933.IP on
2934Fully qualified userids are respected, as per "userid".  Unqualified userids
2935will have their domain determined by doing a reverse lookup on the IP address
2936of the incoming network interface, or if no record is found, the
2937\fIdefaultdomain\fR will be used.
2938
2939.PP
2940    */
2941
2942{ "virusscan_notification_subject", "Automatically deleted mail", STRING, "3.1.8" }
2943/* The text used in the subject of email notifications created by
2944   \fBcyr_virusscan(8)\fR when deleting infected mail. */
2945
2946{ "virusscan_notification_template", NULL, STRING, "3.1.8" }
2947/* The absolute path to a file containing a template to use to describe
2948   infected messages that have been deleted by \fBcyr_virusscan(8)\fR.
2949   See \fBcyr_virusscan(8)\fR for specification of the format of this file.
2950   If not specified, the builtin default template will be used. */
2951
2952{ "xbackup_enabled", 0, SWITCH, "3.0.0" }
2953/* Enable support for the XBACKUP command in imapd.  If enabled, admin
2954   users can use this command to provoke a replication of specified users
2955   to the named backup channel. */
2956
2957# Commented out - there's no such thing as "xlist-flag", but we need
2958# this for the man page
2959# { "xlist-flag", NULL, STRING, "3.0.0" }
2960/* Set the special-use flag \fIflag\fR on the specified folder when it
2961   is autocreated (see the \fIautocreate_inbox_folders\fR option).  For
2962   example, if \fBxlist-junk: Spam\fR is set, and the folder \fBSpam\fR
2963   is autocreated, the special-use flag \fB\\Junk\fR will be set on it.
2964.PP
2965   (This option is so named for backward compatibility with old config
2966   files.)
2967   */
2968
2969{ "lmtp_catchall_mailbox", NULL, STRING, "2.5.0" }
2970/* Mail sent to mailboxes which do not exist, will be delivered to
2971   this user.  NOTE: This must be an existing local user name with an
2972   INBOX, NOT an email address! */
2973
2974{ "zoneinfo_db", "twoskip", STRINGLIST("flat", "skiplist", "twoskip", "zeroskip"), "3.1.6" }
2975/* The cyrusdb backend to use for zoneinfo.  This database is used by the
2976   "tzdist" \fIhttpmodules\fR, and is managed by \fBctl_zoneinfo(8)\fR.*/
2977
2978{ "zoneinfo_db_path", NULL, STRING, "2.5.0" }
2979/* The absolute path to the zoneinfo db file.  If not specified,
2980   will be configdirectory/zoneinfo.db */
2981
2982{ "zoneinfo_dir", NULL, STRING, "3.2.0" }
2983/* The absolute path to the zoneinfo directory, containing timezone
2984   definitions as generated by the vzic tool.  If not specified, whatever
2985   definitions libical finds will be used.
2986.PP
2987   If you are providing a Time Zone Data Distribution Service (i.e. you have
2988   "tzdist" listed in \fIhttpmodules\fR), then this configuration option MUST
2989   be specified. */
2990
2991{ "object_storage_enabled", 0, SWITCH, "3.0.0" }
2992/* Is Object storage enabled for this server.  You also need to have
2993   archiving enabled and archivepartition for the mailbox.
2994   Only email files will be stored on object Storage archive partition will be
2995   used to store any other files */
2996
2997{ "object_storage_dummy_spool", NULL, STRING, "3.0.0" }
2998/* Dummy object storage spool; this is for test only.
2999   Spool where user directory (container) will be created to store all emails
3000   in a flat structure  */
3001
3002{ "openio_namespace", NULL, STRING, "3.0.0" }
3003/* The OpenIO namespace used to store archived email messages. A namespace
3004   identifies the physical platform cyrus must contact. This directive is used
3005   by the OpenIO's SDK to locate its platform entry point. */
3006
3007{ "openio_account", NULL, STRING, "3.0.0" }
3008/* The OpenIO account used to account for stored emails. Accounts are unique
3009   in their namespace. They provides virtual partitions, with quotas and QoS
3010   features. */
3011
3012{ "openio_rawx_timeout", "30s", DURATION, "3.1.8" }
3013/* The OpenIO timeout to query to the RAWX services (default 30 sec). */
3014
3015{ "openio_proxy_timeout", "5s", DURATION, "3.1.8" }
3016/* The OpenIO timeout to query to the PROXY services (default 5 sec). */
3017
3018{ "openio_autocreate", 0, SWITCH, "3.0.0" }
3019/* Allow the OpenIO SDK to autocreate containers. Mainly destined to be turned
3020   on development environments. In production, the container should have been
3021   provisioned with the mailboxes. */
3022
3023{ "openio_verbosity", NULL, STRING, "3.0.0" }
3024/* Sets the logging verbosity of the OpenIO's internal behavior. Admissible
3025   values are: "warning", "notice", "info", "debug", "trace", "quiet".
3026   The default verbosity is "warning". Set to "notice" for a few lines on a
3027   per-client basis. Set to "info" for a few lines on a per-request basis. Set
3028   to "debug" Set to "trace" to activate the underlying libcurl debug
3029   output. Enabling a verbosity higher to equal than "debug" requires
3030   the cyrus to be set in debug mode. The special "quiet" value disables all
3031   kinds of logging at the GLib level. */
3032
3033{ "caringo_hostname", NULL, STRING, "3.0.0" }
3034/* The Caringo hostname used to store archived email messages. A hostname
3035   identifies the physical platform cyrus must contact. This directive is used
3036   by the Caringo's SDK (CastorSDK: Caringo Simple Content Storage Protocol (SCSP)
3037   on HTTP 1.1 using a RESTful architecture  */
3038
3039{ "caringo_port", 80, INT, "3.0.0" }
3040/* The port of the caringo server (caringo_hostname); default is 80. */
3041
3042{ "fastmailsharing", 0, SWITCH, "3.0.0" }
3043/* If enabled, use FastMail style sharing (oldschool full server paths) */
3044
3045/*
3046.SH SEE ALSO
3047.PP
3048\fBimapd(8)\fR, \fBpop3d(8)\fR, \fBnntpd(8)\fR, \fBlmtpd(8)\fR,
3049\fBhttpd(8)\fR, \fBtimsieved(8)\fR, \fBidled(8)\fR, \fBnotifyd(8)\fR,
3050\fBdeliver(8)\fR, \fBmaster(8)\fR, \fBciphers(1)\fR
3051*/
3052