Provided by: cyrus-common_3.8.4-1_amd64 bug

NAME

       imapd.conf - Cyrus IMAP documentation

       IMAP configuration file

DESCRIPTION

          /etc/imapd.conf  is the configuration file for the Cyrus IMAP server.  It defines local parameters for
          IMAP.

          Each line of the /etc/imapd.conf file has the form
                 option: value

          where option is the name of the configuration option being  set  and  value  is  the  value  that  the
          configuration option is being set to.

          Although  there  is no limit to the length of a line, a ``\'' (backslash) character may be used as the
          last character on a line to force it to continue  on  the  next  one.   No  additional  whitespace  is
          inserted  before or after the ``\''.  Note that a line that is split using ``\'' character(s) is still
          considered a single line.

          For example
                 option:\
                     value1 value2 \
                        value3

          is equivalent to
                 option: value1 value2   value3

          Blank lines and lines beginning with ``#'' are ignored.

          For boolean and enumerated options, the values ``yes'', ``on'', ``t'', ``true''  and  ``1''  turn  the
          option on, the values ``no'', ``off'', ``f'', ``false'' and ``0'' turn the option off.

          Duration  options  take  the form of a number followed by a unit, for example 32m (32 minutes).  Units
          are d (days), h (hours), m (minutes) and s (seconds).  Multiple units can  be  combined  and  will  be
          summed  together, for example 1h30m is equivalent to 90m.  If no unit is specified, an option-specific
          backward-compatible default unit is assumed (documented on  an  option-by-option  basis).   These  are
          simple  time units: 1d=24h, 1h=60m, 1m=60s (daylight savings, timezones, leap adjustments, etc are not
          considered).

          Byte size options take the form of a number followed by a unit, for example 1KiB (1 kibibyte).   Units
          are  B (bytes), KiB (kibibytes), MiB (mebibytes), and GiB (gibibytes), which may also be spelt KB, MB,
          and GB.  Units are parsed without regard to case.  Note that regardless of spelling, these  units  are
          always  powers  of 2, and never metric.  That is, 1GiB = 1024MiB, 1MiB = 1024KiB, 1KiB = 1024B.  If no
          unit is specified, an option-specific backward-compatible default unit is assumed  (documented  on  an
          option-by-option basis).

FIELD DESCRIPTIONS

          The  sections  below  detail  options  that  can  be placed in the /etc/imapd.conf file, and show each
          option's default value.  Some options have no default value, these are listed with  ``<no  default>''.
          Some options default to the empty string, these are listed with ``<none>''.

          acl_admin_implies_write: 0
              If  enabled, any user with the admin ACL on a mailbox implicitly gets the ability to write to that
              mailbox as well.

          addressbookprefix: #addressbooks
              The  prefix  for  the  addressbook  mailboxes  hierarchies.   The  hierarchy  delimiter  will   be
              automatically  appended.   The  public addressbook hierarchy will be at the toplevel of the shared
              namespace.  A user's personal addressbook hierarchy will be a child of their Inbox.

          admins: <empty string>
              The list of userids with administrative rights.  Separate each userid with a space.   Sites  using
              Kerberos authentication may use separate "admin" instances.

              Note that accounts used by users should not be administrators.  Administrative accounts should not
              receive mail.  That is, if user "jbRo" is a user reading mail, he should not also be in the admins
              line.   Some  problems  may  occur otherwise, most notably the ability of administrators to create
              top-level mailboxes visible to users, but not writable by users.

          afspts_localrealms: <none>
              The list of realms which are  to  be  treated  as  local,  and  thus  stripped  during  identifier
              canonicalization  (for the AFSPTS ptloader module).  This is different from loginrealms in that it
              occurs later in the authorization process (as the user id is canonified for PTS lookup)

          afspts_mycell: <none>
              Cell to use for AFS PTS lookups.  Defaults to the local cell.

          allowallsubscribe: 0
              Allow subscription to nonexistent mailboxes.  This option is typically used on backend servers  in
              a  Murder so that users can subscribe to mailboxes that don't reside on their "home" server.  This
              option can also be used as a workaround for IMAP clients which don't play well with nonexistent or
              unselectable mailboxes (e.g., Microsoft Outlook).

          allowanonymouslogin: 0
              Permit  logins  by the user "anonymous" using any password.  Also allows use of the SASL ANONYMOUS
              mechanism.

          allowapop: 1
              Allow use of the POP3 APOP authentication command.

              Note that this command requires that SASL is  compiled  with  APOP  support,  that  the  plaintext
              passwords  are available in a SASL auxprop backend (e.g., sasldb), and that the system can provide
              enough entropy (e.g., from /dev/urandom) to create a challenge in the banner.

          allowdeleted: 0
              Allow access to deleted and expunged data via vendor.cmu-* access

          allownewnews: 0
              Allow use of the NNTP NEWNEWS command.

              Note that this is a very expensive command and should only be enabled when absolutely necessary.

          allowplaintext: 0
              If enabled, allows the use of cleartext passwords on the wire.

              By default, the use of cleartext passwords requires a TLS/SSL encryption layer  to  be  negotiated
              prior  to  any  cleartext  authentication  mechanisms  being  advertised or allowed.  To require a
              TLS/SSL encryption layer to be negotiated  prior  to  ANY  authentication,  see  the  tls_required
              option.

          allowsetacl: 1
              Defaults to enabled.  If disabled, disallows the use of the SETACL command at all via IMAP.

          allowusermoves: 0
              Allow moving user accounts (with associated meta-data) via RENAME or XFER.

              Note  that  measures  should be taken to make sure that the user being moved is not logged in, and
              cannot login during the move.  Failure to do so may result in the user's  meta-data  (seen  state,
              subscriptions, etc) being corrupted or out of date.

          altnamespace: 1
              Use the alternate IMAP namespace, where personal folders reside at the same level in the hierarchy
              as INBOX.

              This option ONLY applies where interaction takes place with the client/user.   Currently  this  is
              limited  to  the  IMAP  protocol (imapd) and Sieve scripts (lmtpd).  This option does NOT apply to
              admin tools such as cyradm (admins ONLY), reconstruct,  quota,  etc.,  NOR  does  it  affect  LMTP
              delivery  of  messages directly to mailboxes via plus-addressing.  The default changed in 3.0 from
              off to on.

          altprefix: Alt Folders
              Alternative INBOX spellings that can't be accessed in altnamespace otherwise go under here

          annotation_db: twoskip
              The cyrusdb backend to use for mailbox annotations.

              Allowed values: skiplist, twoskip, zeroskip

          annotation_db_path: <none>
              The   absolute   path   to   the   annotations   db   file.    If   not   specified,    will    be
              configdirectory/annotations.db

          anyoneuseracl: 1
              Should  non-admin  users  be  allowed  to set ACLs for the 'anyone' user on their mailboxes?  In a
              large organization this can cause support problems, but it's enabled by default.

          annotation_allow_undefined: 0
              Allow clients to store values for entries which  are  not  defined  either  by  Cyrus  or  in  the
              annotations_definitions file.

          annotation_definitions: <none>
              File containing external (third-party) annotation definitions.

              Each line of the file specifies the properties of an annotation and has the following form:
                 name, scope, attrib-type, proxy-type, attrib-names, acl

              name   is  the  hierarchical  name  as  in  RFC  5257 or RFC 5464 (in the latter case, without the
                     leading /shared or /private).  For example, /vendor/acme/blurdybloop.

              scope  specifies whether the annotation is for the server, a mailbox, or a message.

              attrib-type
                        specifies the attribute data type, which is used only to check the string  value  passed
                        by clients when setting annotations.  The attrib-type is one of:

                     string any value is accepted.

                     content-type
                            this  obsolete  data  type,  which  was  useful for early drafts of the standard, is
                            accepted but silently translated to string.

                     boolean
                            only the strings "true" or "false" are accepted.  Checking is  case-insensitive  but
                            the value is forced to lowercase.

                     int    integers are accepted.

                     uint   non-negative integers are accepted.

              proxy-type
                     specifies   whether   this   attribute  is  for  the  backend  or  proxy  servers  or  both
                     (proxy_and_backend)

              attrib-names
                     is the space-separated list of available attributes for the annotation. Possible  attribute
                     names   are  value.shared,  value.priv,  and  value  (which  permits  both  value.priv  and
                     value.shared).  The attribute names size,  size.shared,  and  size.priv  are  accepted  but
                     ignored;  these  attributes  are  automatically provided by the server if the corresponding
                     value attribute is specified.  Some obsolete attributes, which were defined early drafts of
                     the standard, are accepted and ignored with a warning.

              extra-permissions
                     is the extra ACL permission bits required for setting this annotation, in standard IMAP ACL
                     permission bit string format.  Note that  this  is  in  addition  to  the  permission  bits
                     specified  in  RFC  5257  and RFC 5464, so leaving this field empty is harmless.  Note also
                     that there is no way to specify that an annotation can only be set by  an  admin  user;  in
                     particular the a permission bit does not achieve this.

                     Blank lines and lines beginning with ``#'' are ignored.

          annotation_callout: <none>
              The  pathname  of a callout to be used to automatically add annotations or flags to a message when
              it is appended to a mailbox.  The path can be either an executable (including a script), or a UNIX
              domain socket.

          annotation_callout_disable_append: 0
              Disables annotations on append with xrunannotator

          annotation_enable_legacy_commands: 0
              Whether  to enable the legacy GETANNOTATION/SETANNOTATION commands.  These commands are deprecated
              and will be removed in the future, but might be useful in the meantime for supporting old  clients
              that do not implement the RFC 5464 IMAP METADATA extension.

          aps_topic: <none>
              Topic for Apple Push Service registration.

          aps_topic_caldav: <none>
              Topic for Apple Push Service registration for CalDAV.

          aps_topic_carddav: <none>
              Topic for Apple Push Service registration for CardDAV.

          archive_enabled: 0
              Is  archiving enabled for this server.  You also need to have an archivepartition for the mailbox.
              Archiving allows older email to be stored on slower, cheaper disks - even within the same mailbox,
              as distinct from partitions.

          archive_days: <none>
              Deprecated in favour of archive_after.

          archive_after: 7d
              The duration after which to move messages to the archive partition if archiving is enabled.

              For backward compatibility, if no unit is specified, days is assumed.

          archive_maxsize: 1024 K
              The size of the largest message that won't be archived immediately.

              For backward compatibility, if no unit is specified, kibibytes is assumed.

          archive_keepflagged: 0
              If  set,  messages with the \Flagged system flag won't be archived, provided they are smaller than
              archive_maxsize.

          archivepartition-name: <none>
              The pathname of the archive partition name, corresponding to spool partition partition-name.   For
              any  mailbox  residing in a directory on partition-name, the archived messages will be stored in a
              corresponding directory on archivepartition-name.  Note that not every  partition-name  option  is
              strictly  required  to  have  a  corresponding  archivepartition-name option, but that without one
              there's no benefit to enabling archiving.

          auditlog: 0
              Should cyrus output log entries for every action taken on a message file or mailboxes list  entry?
              It's  noisy  so  disabled  by  default,  but can be very useful for tracking down what happened if
              things look strange

          auth_mech: unix
              The authorization mechanism to use.

              Allowed values: unix, pts, krb, krb5

          autocreateinboxfolders: <none>
              Deprecated in favor of autocreate_inbox_folders.

          autocreatequota: <none>
              Deprecated in favor of autocreate_quota.

          autocreatequotamsg: -1
              Deprecated in favor of autocreate_quota_messages.

          autosievefolders: <none>
              Deprecated in favor of autocreate_sieve_folders.

          generate_compiled_sieve_script: 0
              Deprecated in favor of autocreate_sieve_script_compile.

          autocreate_sieve_compiled_script: <none>
              Deprecated in favor of autocreate_sieve_script_compiled.

          autosubscribeinboxfolders: <none>
              Deprecated in favor of autocreate_subscribe_folders.

          autosubscribesharedfolders: <none>
              Deprecated in favor of autocreate_subscribe_sharedfolders.

          autosubscribe_all_sharedfolders: 0
              Deprecated in favor of autocreate_subscribe_sharedfolders_all.

          autocreate_acl: <none>
              If folders are to be created by autocreate_inbox_folders,  this  setting  can  be  used  to  apply
              additional  ACLs  to  the  autocreated  folders.   The syntax is "autocreate_acl folder identifier
              rights", where folder must match one of the autocreate_inbox_folders folders, identifier must be a
              valid   cyrus   identifier,   and   rights   must  be  a  valid  cyrus  rights  string.   Multiple
              identifier|rights pairs can be assigned to a single folder  by  providing  this  setting  multiple
              times.

              For example, "autocreate_acl Plus anyone p" would allow lmtp delivery to a folder named "Plus".

          autocreate_inbox_folders: <none>
              If  a  user  does  not  have  an INBOX already, and the INBOX is to be created, create the list of
              folders in this setting as  well.   autocreate_inbox_folders  is  a  list  of  INBOX's  subfolders
              separated  by  a  "|",  that  are  automatically  created  by  the  server under the following two
              scenarios. Leading and trailing whitespace is stripped, so "Junk | Trash" results in two  folders:
              "Junk"  and "Trash".  See also the xlist-flag option, for setting special-use flags on autocreated
              folders.

              INBOX folders are created under both the following conditions:

              1. The user logins via the IMAP or the POP3 protocol.  autocreate_quota option must have  a  value
                 of zero or greater.

              2. A message arrives for the user through the lmtpd(8).  autocreate_post option must be enabled.

          autocreate_post: 0
              If  enabled,  when  lmtpd(8)  receives an incoming mail for an INBOX that does not exist, then the
              INBOX is automatically created by lmtpd(8) and delivery of the message continues.

          autocreate_quota: -1
              If set to a value of zero or higher, users have their INBOX  folders  created  upon  a  successful
              login  event or upon lmtpd(8) message delivery if autocreate_post is enabled, provided their INBOX
              did not yet already exist.

              The user's quota is set to the value if it is greater than zero, otherwise the user has  unlimited
              quota.

              Note  that quota has kibibyte granularity.  Values specified here will be truncated to the nearest
              whole kibibyte.

              For backward compatibility, if no unit is specified, kibibytes is assumed.

          autocreate_quota_messages: -1
              If set to a value of zero or higher, users who have their INBOX folders created upon a  successful
              login  event  (see  autocreate_quota),  or  upon  lmtpd(8)  message delivery if autocreate_post is
              enabled, receive the message quota configured in this option.

              The default of -1 disables assigning message quota.

              For consistency with autocreate_quota, a value of zero is  treated  as  unlimited  message  quota,
              rather than a message quota of zero.

          autocreate_sieve_folders: <none>
              A  "|" separated list of subfolders of INBOX that will be automatically created, if requested by a
              sieve filter, through the "fileinto" action. The default is to create no folders automatically.

              Leading and trailing whitespace is stripped from each folder, so a setting of "Junk | Trash"  will
              create two folders: "Junk" and "Trash".

          autocreate_sieve_script: <none>
              The  full  path of a file that contains a sieve script. This script automatically becomes a user's
              initial default sieve filter script.

              When this option is not defined, no default sieve filter is created.  The file must be readable by
              the Cyrus daemon.

          autocreate_sieve_script_compile: 0
              If  set to yes and no compiled sieve script file exists, the sieve script which is compiled on the
              fly will be saved in the file name that autocreate_sieve_compiledscript option points to. In order
              a  compiled  script  to  be generated, autocreate_sieve_script and autocreate_sieve_compiledscript
              must have valid values

          autocreate_sieve_script_compiled: <none>
              The full path of  a  file  that  contains  a  compiled  in  bytecode  sieve  script.  This  script
              automatically  becomes  a  user's  initial  default  sieve  filter  script.  If this option is not
              specified, or the filename doesn't exist then the script  defined  by  autocreate_sieve_script  is
              compiled on the fly and installed as the user's default sieve script

          autocreate_subscribe_folders: <none>
              A  list  of  folder  names, separated by "|", that the users get automatically subscribed to, when
              their INBOX is created. These folder names must have been included in  the  autocreateinboxfolders
              option of the imapd.conf.

          autocreate_subscribe_sharedfolders: <none>
              A  list  of  shared  folders (bulletin boards), separated by "|", that the users get automatically
              subscribed to, after their INBOX is created. The shared folder must have been created and the user
              must  have  the required permissions to get subscribed to it. Otherwise, subscribing to the shared
              folder fails.

          autocreate_subscribe_sharedfolders_all: 0
              If set to yes, the user is automatically subscribed to all shared folders, one has  permission  to
              subscribe to.

          autocreate_users: anyone
              A  space  separated  list  of users and/or groups that are allowed their INBOX to be automatically
              created.

          autoexpunge: 0
              If set to yes, then all Deleted messages will be  automatically  expunged  whenever  an  index  is
              closed, whether CLOSE, UNSELECT, SELECT or on disconnect

          backuppartition-name: <none>
              The  pathname  of  the  backup  partition  name.   At  least one backup partition pathname MUST be
              specified if backups are in use.  Note that there is no relationship between spool partitions  and
              backup partitions.

          backup_compact_minsize: 0
              The  minimum  size of chunks in each backup.  The compact tool will try to combine adjacent chunks
              that are smaller than this.

              Setting this value to zero or negative disables combining of chunks.

              For backward compatibility, if no unit is specified, kibibytes is assumed.

          backup_compact_maxsize: 0
              The maximum size of chunks in each backup.  The compact tool will try to split chunks larger  than
              this into smaller chunks.

              Setting this value to zero or negative disables splitting of chunks.

              For backward compatibility, if no unit is specified, kibibytes is assumed.

          backup_compact_work_threshold: 1
              The  number  of  chunks  that must obviously need compaction before the compact tool will go ahead
              with the compaction.  If set to less than one, the value is treated as being one.

          backup_staging_path: <none>
              The absolute path of the backup staging area.  If not specified, will be temp_path/backup

          backup_retention_days: <none>
              Deprecated in favor of backup_retention.

          backup_retention: 7d
              How long to keep content in backup after it has been  deleted  from  the  source.   If  set  to  a
              negative value or zero, deleted content will be kept indefinitely.

              For backward compatibility, if no unit is specified, days is assumed.

          backup_db: twoskip
              The cyrusdb backend to use for the backup locations database.

              Allowed values: skiplist, sql, twoskip, zeroskip

          backup_db_path: <none>
              The absolute path to the backup db file.  If not specified, will be configdirectory/backups.db

          backup_keep_previous: 0
              Whether  the  ctl_backups  compact  and  ctl_backups reindex commands should preserve the original
              file.  The original file will be named with a timestamped  suffix.   This  is  mostly  useful  for
              debugging.

              Note  that  with  this  enabled,  compacting  a  backup will actually increase the disk used by it
              (because there will now be an extra copy: the original version, and the compacted version).

          boundary_limit: 1000
              messages are parsed recursively and a deep enough MIME structure can cause a stack  overflow.   Do
              not parse deeper than this many layers of MIME structure.  The default of 1000 is much higher than
              any sane message should have.

          caldav_accept_invalid_rrules: 0
              Accept invalid RRULEs (e.g. FREQ=WEEKLY;BYMONTHDAY=15) rather than rejecting them as errors.

          caldav_allowattach: 1
              Enable managed attachments support on the CalDAV server.

          caldav_allowcalendaradmin: 0
              Enable per-user calendar administration web UI on the CalDAV server.

          caldav_allowscheduling: on
              Enable calendar  scheduling  operations.  If  set  to  "apple",  the  server  will  emulate  Apple
              CalendarServer behavior as closely as possible.  Allowed values: off, on, apple

          caldav_create_attach: 1
              Create the 'Attachments' collection if it doesn't already exist

          caldav_create_default: 1
              Create the 'Default' calendar if it doesn't already exist

          caldav_create_sched: 1
              Create the 'Inbox' and 'Outbox' calendars if they don't already exist

          caldav_historical_age: 7d
              How  long  after  an occurrence of event or task has concluded that it is considered 'historical'.
              Changes to historical occurrences of events or tasks WILL NOT have invite or reply  messages  sent
              for them.  A negative value means that events and tasks are NEVER considered historical.

              For backward compatibility, if no unit is specified, days is assumed.

          caldav_maxdatetime: 20380119T031407Z
              The  latest  date  and  time  accepted  by  the  server (ISO format).  This value is also used for
              expanding non-terminating recurrence rules.

              Note that increasing this value will require the DAV databases for calendars to  be  reconstructed
              with the dav_reconstruct utility in order to see its effect on serer-side time-based queries.

          caldav_mindatetime: 19011213T204552Z
              The earliest date and time accepted by the server (ISO format).

          caldav_realm: <none>
              The  realm  to present for HTTP authentication of CalDAV resources.  If not set (the default), the
              value of the "servername" option will be used.

          calendarprefix: #calendars
              The prefix for the calendar mailboxes hierarchies.  The hierarchy delimiter will be  automatically
              appended.   The  public  calendar  hierarchy  will  be at the toplevel of the shared namespace.  A
              user's personal calendar hierarchy will be a child of their Inbox.

          calendar_default_displayname: personal
              The displayname to be used when creating a user's 'Default' calendar.

          calendar_user_address_set: <none>
              Space-separated list of domains corresponding to calendar user addresses for which the  server  is
              responsible.  If not set (the default), the value of the "servername" option will be used.

          calendar_component_set: VEVENT VTODO VJOURNAL VFREEBUSY VAVAILABILITY VPOLL
              Space-separated  list of iCalendar component types that calendar object resources may contain in a
              calendar collection.  This restriction is only set at calendar  creation  time  and  only  if  the
              CalDAV  client  hasn't  specified  a restriction in the creation request.  Allowed values: VEVENT,
              VTODO, VJOURNAL, VFREEBUSY, VAVAILABILITY, VPOLL

          calendar_minimum_alarm_interval: 5m
              The minimum allowed interval between alarms for a recurring event.   Primarily  used  to  suppress
              alarms  for MINUTELY and SECONDLY recurrences.  The default is 5 minutes.  The minimum value is 0,
              which will allow all alarms.

          carddav_allowaddmember: 0
              Enable support for POST add-member on the CardDAV server.

          carddav_allowaddressbookadmin: 0
              Enable per-user addressbook administration web UI on the CardDAV server.

          carddav_realm: <none>
              The realm to present for HTTP authentication of CardDAV resources.  If not set (the default),  the
              value of the "servername" option will be used.

          carddav_repair_vcard: 0
              If enabled, VCARDs with invalid content are attempted to be repaired during creation.

          chatty: 0
              If  yes,  syslog  tags  and  commands for every IMAP command, mailboxes for every lmtp connection,
              every POP3 command, etc

          client_bind: 0
              If enabled, a specific IP will be bound when performing a client connection.  client_bind_name  is
              used  if  it  is  set,  otherwise servername is used.  This is useful on multi-homed servers where
              Cyrus should not use other services' interfaces.

              If not enabled (the default), no bind will be performed.  Client connections will use an IP chosen
              by the operating system.

          client_bind_name: <none>
              IPv4, IPv6 address or hostname to bind for client connections when client_bind is enabled.  If not
              set (the default), servername will be used.

          client_timeout: 10s
              Time to wait before returning a timeout failure when performing a client  connection  (e.g.  in  a
              murder environment).

              For backward compatibility, if no unit is specified, seconds is assumed.

          commandmintimer: <none>
              Time in floating point seconds. Any imap command that takes longer than this time is logged.

          configdirectory: <none>
              The pathname of the IMAP configuration directory.  This field is required.

          createonpost: 0
              Deprecated in favor of autocreate_post.

          conversations: 0
              Enable  the  XCONVERSATIONS  extensions.   Extract conversation tracking information from incoming
              messages and track them in per-user databases.

          conversations_counted_flags: <none>
              space-separated list of flags for which per-conversation counts will be kept.  Note that you  need
              to  reconstruct the conversations database with ctl_conversationsdb if you change this option on a
              running server, or the counts will be wrong.

          conversations_db: skiplist
              The cyrusdb backend to use for the per-user conversations database.

              Allowed values: skiplist, sql, twoskip, zeroskip

          conversations_expire_days: <none>
              Deprecated in favor of conversations_expire_after.

          conversations_expire_after: 90d
              How long the conversations database keeps the message tracking information  needed  for  receiving
              new messages in existing conversations.

              For backward compatibility, if no unit is specified, days is assumed.

          conversations_keep_existing: 1
              during  conversations  cleanup,  don't clean up if there are still existing emails with one of the
              mentioned CIDs

          conversations_max_thread: 100
              maximum size for a single thread.  Threads will split if they have this many messages in them  and
              another message arrives

          conversations_max_guidrecords: 5000
              maximum  records  with  the  same  guid.  This is just a sanity check to stop the same email being
              added and removed over and over, so the default is 5000

          conversations_max_guidexists: 100
              maximum records with the same guid.  This maps to "labels", so with the default of  100,  you  can
              only have 100 labels on an email in JMAP

          conversations_max_guidinfolder: 10
              maximum  records  with the same guid in the same folder. You can't do this via JMAP, but could via
              IMAP.  The default of 10 should be heaps normally!

          crossdomains: 0
              Enable cross domain sharing.  This works best with alt namespace and unix hierarchy separators on,
              so you get Other Users/foo@example.com/...

          crossdomains_onlyother: 0
              only  show  the  domain  for  users in other domains than your own (for backwards compatibility if
              you're already sharing

          cyrus_group: <none>
              The name of the group Cyrus services will run  as.   If  not  configured,  the  primary  group  of
              cyrus_user  will  be  used.  Can  be  further  overridden  by setting the $CYRUS_GROUP environment
              variable.

          cyrus_user: <none>
              The username to use as the 'cyrus' user.  If not configured, the  compile  time  default  will  be
              used. Can be further overridden by setting the $CYRUS_USER environment variable.

          davdriveprefix: #drive
              The  prefix  for  the  DAV  storage  mailboxes  hierarchies.   The  hierarchy  delimiter  will  be
              automatically appended.  The public storage hierarchy will  be  at  the  toplevel  of  the  shared
              namespace.  A user's personal storage hierarchy will be a child of their Inbox.

          davnotificationsprefix: #notifications
              The  prefix  for  the  DAV notifications hierarchy.  The hierarchy delimiter will be automatically
              appended.  The public notifications hierarchy will be at the toplevel of the shared namespace.   A
              user's personal notifications hierarchy will be a child of their Inbox.

          dav_realm: <none>
              The  realm  to  present for HTTP authentication of generic DAV resources (principals).  If not set
              (the default), the value of the "servername" option will be used.

          dav_lock_timeout: 20s
              The maximum time to wait for a write lock on the per-user DAV database before  timeout.  For  HTTP
              requests, the HTTP status code 503 is returned if the lock can not be obtained within this time.

              For backward compatibility, if no unit is specified, seconds is assumed.

          debug: 0
              If enabled, allow syslog() to pass LOG_DEBUG messages.

          debug_command: <none>
              Debug  command  to  be  used by processes started with -D option.  The string is a C format string
              that gets 3 options: the first is the name of the executable (as specified in the cmd parameter in
              cyrus.conf).  The  second  is  the  pid  (integer)  and  the  third  is  the service ID.  Example:
              /usr/local/bin/gdb /usr/cyrus/bin/%s %d

          debug_log_sync_partition_choice: 0
              If enabled, replication will log which partition it chose for staging.  This is mainly useful  for
              regression testing the sync_client -a switch.

          debug_writefail_guid: <none>
              If  set, any arriving message with this guid will fail as if the underlying disk write had failed,
              pretending to be a disk full condition.  This is mainly useful for regression testing certain edge
              case handling.  Currently only implemented for replication uploads.

          defaultacl: anyone lrs
              The  Access  Control  List (ACL) placed on a newly-created (non-user) mailbox that does not have a
              parent mailbox.

          defaultdomain: internal
              The default domain for virtual domain support

          defaultpartition: <none>
              The partition name used by default for new mailboxes.  If not specified, the  partition  with  the
              most free space will be used for new mailboxes.

              Note  that  the partition specified by this option must also be specified as partition-name, where
              you substitute 'name' for the alphanumeric string you set defaultpartition to.

          defaultsearchtier: <empty string>
              Name of the default tier that messages will be indexed to. Search  indexes  can  be  organized  in
              tiers  to  allow  index  storage  in different directories and physical media. See the man page of
              squatter for details. The default search  tier  also  requires  the  definition  of  an  according
              searchtierpartition-name entry.

              This option MUST be specified for xapian search.

          defaultserver: <none>
              The  backend server name used by default for new mailboxes.  If not specified, the server with the
              most free space will be used for new mailboxes.

          deletedprefix: DELETED
              With delete_mode set to delayed, the deletedprefix setting defines the prefix for the hierarchy of
              deleted mailboxes.

              The hierarchy delimiter will be automatically appended.

          delete_mode: delayed
              The  manner  in which mailboxes are deleted. In the default delayed mode, mailboxes that are being
              deleted are renamed to a special mailbox hierarchy under the deletedprefix, to be removed later by
              cyr_expire(8).

              In immediate mode, the mailbox is removed from the filesystem immediately.

              Allowed values: immediate, delayed

          delete_unsubscribe: 0
              Whether  to  also  unsubscribe  from  mailboxes  when  they are deleted.  Note that this behaviour
              contravenes RFC 3501 section 6.3.9, but may be useful for avoiding user/client software confusion.
              The default is 'no'.

          deleteright: c
              Deprecated - only used for backwards compatibility with existing installations.  Lists the old RFC
              2086 right which was used to grant the user the ability to delete a mailbox.  If a user  has  this
              right, they will automatically be given the new 'x' right.

          disable_user_namespace: 0
              Preclude  list  command  on user namespace.  If set to 'yes', the LIST response will never include
              any other user's mailbox.  Admin users will always see all mailboxes.  The default is 'no'

          disable_shared_namespace: 0
              Preclude list command on shared namespace.  If set to 'yes', the LIST response will never  include
              any non-user mailboxes.  Admin users will always see all mailboxes.  The default is 'no'

          disconnect_on_vanished_mailbox: 0
              If  enabled,  IMAP/POP3/NNTP  clients will be disconnected by the server if the currently selected
              mailbox is (re)moved by another session.  Otherwise, the missing mailbox is treated as empty while
              in use by the client.

          ischedule_dkim_domain: <none>
              The domain to be reported as doing iSchedule DKIM signing.

          ischedule_dkim_key_file: <none>
              File containing the private key for iSchedule DKIM signing.

          ischedule_dkim_required: 1
              A DKIM signature is required on received iSchedule requests.

          ischedule_dkim_selector: <none>
              Name  of  the  selector  subdividing the domain namespace.  This specifies the actual key used for
              iSchedule DKIM signing within the domain.

          duplicate_db: twoskip
              The cyrusdb backend to use for the duplicate delivery  suppression  and  sieve.   Allowed  values:
              skiplist, sql, twoskip, zeroskip

          duplicate_db_path: <none>
              The absolute path to the duplicate db file.  If not specified, will be configdirectory/deliver.db

          duplicatesuppression: 1
              If  enabled,  lmtpd  will  suppress  delivery of a message to a mailbox if a message with the same
              message-id (or resent-message-id) is recorded as having already been  delivered  to  the  mailbox.
              Records the mailbox and message-id/resent-message-id of all successful deliveries.

          event_content_inclusion_mode: standard
              The  mode  in  which message content may be included with MessageAppend and MessageNew. "standard"
              mode is the default behavior in which message is included up to a size with the  notification.  In
              "message"  mode,  the  message  is  included  and may be truncated to a size. In "header" mode, it
              includes headers truncated to a size. In "body" mode, it includes body truncated  to  a  size.  In
              "headerbody" mode, it includes full headers and body truncated to a size Allowed values: standard,
              message, header, body, headerbody

          event_content_size: 0
              Truncate the message content that may be included with MessageAppend  and  MessageNew.  Set  0  to
              include the entire message itself.

              If no unit is specified, bytes is assumed.

          event_exclude_flags: <none>
              Don't send event notification for given IMAP flag(s)

          event_exclude_specialuse: \Junk
              Don't  send  event  notification  for  folder  with given special-use attributes.  Set ALL for any
              folder

          event_extra_params: timestamp
              Space-separated list of extra parameters to add to any appropriated event.

              Allowed values: 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.fastmail.jmapEmail,
              vnd.fastmail.jmapStates, vnd.cmu.emailid, vnd.cmu.threadid

          event_groups: message mailbox
              Space-separated list of groups of related events to turn on notification

              Allowed  values: message, quota, flags, access, mailbox, subscription, calendar, applepushservice,
              jmap

          event_notifier: <none>
              Notifyd(8) method to use for "EVENT" notifications which are based on the RFC 5423.  If  not  set,
              "EVENT" notifications are disabled.

          expunge_mode: delayed
              The  mode  in  which messages (and their corresponding cache entries) are expunged.  "semidelayed"
              mode is the old behavior in which the message files are purged at the time  of  the  EXPUNGE,  but
              index  and  cache  records  are  retained  to facilitate QRESYNC.  In "delayed" mode, which is the
              default since Cyrus 2.5.0, the message files are also retained, allowing unexpunge to rescue them.
              In "immediate" mode, both the message files and the index records are removed as soon as possible.
              In all cases, nothing will be finally purged until all other processes have closed the mailbox  to
              ensure  they never see data disappear under them.  In "semidelayed" or "delayed" mode, a later run
              of "cyr_expire" will clean out the retained records (and possibly message  files).   This  reduces
              the  amount  of  I/O  that  takes  place  at  the  time  of  EXPUNGE  and should result in greater
              responsiveness for the client, especially when expunging a  large  number  of  messages.   Allowed
              values: immediate, semidelayed, delayed

          failedloginpause: 3s
              Time to pause after a failed login.

              For backward compatibility, if no unit is specified, seconds is assumed.

          flushseenstate: 1
              Deprecated. No longer used

          foolstupidclients: 0
              If  enabled, only list the personal namespace when a LIST "*" is performed (it changes the request
              to a LIST "INBOX*").

          force_sasl_client_mech: <none>
              Force preference of a given SASL mechanism for client side operations (e.g., murder environments).
              This  is separate from (and overridden by) the ability to use the <host shortname>_mechs option to
              set preferred mechanisms for a specific host

          fulldirhash: 0
              If enabled, uses an improved directory hashing scheme which hashes on the entire username  instead
              of  using  just the first letter as the hash.  This changes hash algorithm used for quota and user
              directories and if hashimapspool is enabled, the entire mail spool.

              Note that this option CANNOT be changed on a live system.  The server must be  quiesced  and  then
              the directories moved with the rehash utility.

          hashimapspool: 0
              If  enabled,  the partitions will also be hashed, in addition to the hashing done on configuration
              directories.  This is recommended if one partition has a very bushy mailbox tree.

          hostname_mechs: <none>
              Force a particular list of SASL mechanisms to be used when authenticating to  the  backend  server
              hostname  (where hostname is the short hostname of the server in question). If it is not specified
              it will query the server for available mechanisms and pick one to use. - Cyrus Murder

          hostname_password: <none>
              The password to use for authentication to the backend server hostname (where hostname is the short
              hostname of the server) - Cyrus Murder

          httpallowcompress: 1
              If  enabled, the server will compress response payloads if the client indicates that it can accept
              them.  Note that the compressed data will appear in telemetry  logs,  leaving  only  the  response
              headers as human-readable.

          httpallowcors: <none>
              A  wildmat  pattern  specifying  a list of origin URIs ( scheme "://" host [ ":" port ] ) that are
              allowed to make Cross-Origin Resource Sharing (CORS) requests on the  server.   By  default,  CORS
              requests are disabled.

              Note  that  the  scheme and host should both be lowercase, the port should be omitted if using the
              default for the scheme (80 for http, 443 for https), and there should be no trailing '/' (e.g.: "‐
              http://www.example.com:8080", "https://example.org").

          httpallowtrace: 0
              Allow use of the TRACE method.

              Note that sensitive data might be disclosed by the response.

          httpallowedurls: <none>
              Space-separated  list of relative URLs (paths) rooted at "httpdocroot" (see below) to be served by
              httpd.  If set, this option will limit  served  static  content  to  only  those  paths  specified
              (returning  "404  Not Found" to any other client requested URLs).  Otherwise, httpd will serve any
              content found in "httpdocroot".

              Note that any path specified by "rss_feedlist_template" is an exception to this rule.

          httpcontentmd5: 0
              If enabled, HTTP responses will include a Content-MD5 header  for  the  purpose  of  providing  an
              end-to-end message integrity check (MIC) of the payload body.  Note that enabling this option will
              use additional CPU to generate the MD5 digest, which may be ignored by clients anyways.

          httpdocroot: <none>
              If set, http will serve  the  static  content  (html/text/jpeg/gif  files,  etc)  rooted  at  this
              directory.  Otherwise, httpd will not serve any static content.

          httpkeepalive: 20s
              Set  the length of the HTTP server's keepalive heartbeat.  The default is 20 seconds.  The minimum
              value is 0, which will disable the keepalive heartbeat.  When enabled, if a request  takes  longer
              than  httpkeepalive  to  process,  the  server  will  send  the client provisional responses every
              httpkeepalive until the final response can be sent.

              For backward compatibility, if no unit is specified, seconds is assumed.

          httplogheaders: <none>
              Space-separated list of HTTP header fields that  will  be  included  in  the  requests  logged  by
              httpd(8).

          httpmodules: <empty string>
              Space-separated  list of HTTP modules that will be enabled in httpd(8).  This option has no effect
              on modules that are disabled at compile time due to missing dependencies (e.g. libical).

              Note that "domainkey"  depends  on  "ischedule"  being  enabled,  and  that  both  "freebusy"  and
              "ischedule"  depend  on  "caldav"  being  enabled.   Allowed  values: admin, caldav, carddav, cgi,
              domainkey, freebusy, ischedule, jmap, prometheus, rss, tzdist, webdav

          httpprettytelemetry: 0
              If enabled, HTTP response payloads including server-generated markup languages  (HTML,  XML)  will
              utilize  line  breaks and indentation to promote better human-readability in telemetry logs.  Note
              that enabling this option will increase the amount of data sent across the wire.

          httppts_uri: <none>
              The URL endpoint to use when for querying group membership, in URI Template (level 1) format  [RFC
              6570].  The URL MUST contain a variable called "groupId"

          httptimeout: 5m
              Set  the  length of the HTTP server's inactivity autologout timer.  The default is 5 minutes.  The
              minimum value is 0, which will disable persistent connections.

              For backwards compatibility, if no unit is specified, minutes is assumed.

          http_h2_altsvc: <none>
              If set, HTTP/2 (over TLS) will be advertised as being available on the specified [host]:port.

          http_jwt_key_dir: <none>
              The absolute path to a directory containing one or more key files to authenticate JSON Web  Tokens
              (RFC  7519)  for  HTTP connections.  Keys for the following JWS algorithms are supported: "HS256",
              "HS384", "HS512", "RS256", "RS384", "RS512".

              A key file consists of one or more keys encoded in PEM format.  RSA keys must be embedded  between
              the  lines  "-----BEGIN  PUBLIC  KEY-----" and "-----END PUBLIC KEY-----" HMAC digest keys must be
              embedded between the lines "-----BEGIN HMAC KEY-----" and "-----END  HMAC  KEY-----",  encoded  in
              base64.   Any  lines  before  or  after  a PEM key definition are ignored, empty lines are ignored
              anywhere in the file.

              The JSON Web Token must be the value of  the  HTTP  "Authorization"  header,  using  the  "Bearer"
              authentication  scheme.  The  JWS Header must include the "alg" and "typ" parameter. A header with
              any other parameter is rejected.  The JWS Payload must include the "sub" claim with the Cyrus user
              identifier  as  value.  It may include the "iat" claim (see http_jwt_max_age).  A payload with any
              other claim is rejected.

          http_jwt_max_age: 0s
              Defines the timespan in which a JSON Web Token is valid (see http_jwt_key). The value must be zero
              or positive.

              If  non-zero,  the  timespan  starts  at the point in time specified in the "iat" claim of the JWS
              Payload and ends after the duration of this option value  has  passed.  Tokens  without  an  "iat"
              claim, or with an issue date in the future, are rejected. There is no leeway for clock skew.

              The zero value disables validation of the "iat" JWS claim.

          icalendar_max_size: 0
              Maximum  allowed  iCalendar size. CalDAV and JMAP will reject storage of resources whose iCalendar
              representation is larger than this.

              If set to 0 (the default), a large internally-defined limit will be applied.

              If no unit is specified, bytes is assumed.

          idlesocket: {configdirectory}/socket/idle
              Unix domain socket that idled listens on.

          ignorereference: 0
              For backwards compatibility with Cyrus 1.5.10 and earlier -- ignore the reference argument in LIST
              or LSUB commands.

          imapidlepoll: 60s
              The  interval  for  polling  for  mailbox changes and ALERTs while running the IDLE command.  This
              option is used when idled is not enabled or cannot be contacted.  The minimum value is  1  second.
              A value of 0 will disable IDLE.

              For backward compatibility, if no unit is specified, seconds is assumed.

          imapidresponse: 1
              If  enabled,  the  server  responds  to  an  ID command with a parameter list containing: version,
              vendor, support-url, os,  os-version,  command,  arguments,  environment.   Otherwise  the  server
              returns NIL.

          imapmagicplus: 0
              Only  list  a  restricted  set  of  mailboxes  via  IMAP  by  using userid+namespace syntax as the
              authentication/authorization  id.   Using  userid+  (with  an  empty  namespace)  will  list  only
              subscribed mailboxes.

          imipnotifier: <none>
              Notifyd(8)  method  to  use for "IMIP" notifications which are based on the RFC 6047.  If not set,
              "IMIP" notifications are disabled.

          implicit_owner_rights: lkxan
              The implicit Access Control List (ACL) for the owner of a mailbox.

          @include: <none>
              Directive which includes the specified file as part of the configuration.  If the path to the file
              is not absolute, CYRUS_PATH is prepended.

          improved_mboxlist_sort: 0
              If enabled, a special comparator will be used which will correctly sort mailbox names that contain
              characters such as ' ' and '-'.

              Note that this option SHOULD NOT be changed on a live system.  The mailboxes  database  should  be
              dumped  (ctl_mboxlist) before the option is changed, removed, and then undumped after changing the
              option.  When not using flat files for the  subscriptions  databases  the  same  has  to  be  done
              (cyr_dbtool) for each subscription database See improved_mboxlist_sort.html.

          jmap_emailsearch_db_path: <none>
              The  absolute  path  to  the JMAP email search cache file.  If not specified, JMAP Email/query and
              Email/queryChanges will not cache email search results.

          jmap_querycache_max_age: 0m
              The duration after which unused cached JMAP query results must be evicted from process memory.  If
              non-zero,  then  the  full  result  of  the  last  query  (before  windowing) is stored in-memory.
              Subsequent queries with the same expression and query state  can  then  page  through  the  cached
              result.  A zero value disables query result caching.

              If no unit is specified, minutes is assumed.

              This feature currently only is enabled for Email/query.

          jmap_preview_annot: <none>
              The name of the per-message annotation, if any, to store message previews.

          jmap_imagesize_annot: <none>
              The  name  of  the per-message annotation, if any, that stores a JSON object, mapping message part
              numbers of MIME image types to an array of their image dimensions. The array must  have  at  least
              two entries, where the first entry denotes the width and the second entry the height of the image.
              Any additional values are ignored.

              For example, if message part 1.2 contains an image of width 300 and height 200, then the value  of
              this annotation would be:

              { "1.2" : [ 300, 200 ] }

          jmap_inlinedcids_annot: <none>
              The  name  of  the  per-message  annotation,  if  any, that stores a JSON object, mapping RFC 2392
              Content-IDs referenced in HTML bodies to the respective HTML body part number.

              For example, if message part 1.2 contains HTML and references an inlined image at "cid:foo",  then
              the value of this annotation would be:

              { "<foo>" : "1.2" }

              Note that the Content-ID key must be URL-unescaped and enclosed in angular brackets, as defined in
              RFC 2392.

          jmap_preview_length: 64B
              The  maximum  length   of   dynamically   generated   message   previews.   Previews   stored   in
              jmap_preview_annot take precedence.

              If no unit is specified, bytes is assumed.

          jmap_max_catenate_items: 100
              The maximum number of items that can be catenated together by a JMAP Blob/set action.  Returned as
              the maxCatenateItems property value of the JMAP "urn:ietf:params:jmap:blob"  capabilities  object.
              Default value is 100.

          jmap_max_size_upload: 1G
              The  maximum  size  that  the  JMAP  API  accepts  for blob uploads. Returned as the maxSizeUpload
              property value of the JMAP "urn:ietf:params:jmap:core" capabilities object.

              For backward compatibility, if no unit is specified, kibibytes is assumed.

          jmap_max_size_blob_set: 4M
              The maximum size that the JMAP API accepts for Blob/set. Returned as the  maxSizeBlobSet  property
              value of the JMAP "https://cyrusimap.org/ns/jmap/blob" capabilities object.

              For backward compatibility, if no unit is specified, kibibytes is assumed.

          jmap_max_concurrent_upload: 5
              The  value  to return for the maxConcurrentUpload property of the JMAP "urn:ietf:params:jmap:core"
              capabilities object. The Cyrus JMAP implementation does not enforce this rate-limit.

          jmap_max_size_request: 10M
              The maximum size that the JMAP API accepts for requests at the  API  endpoint.   Returned  as  the
              maxSizeRequest property value of the JMAP "urn:ietf:params:jmap:core" capabilities object.

              For backward compatibility, if no unit is specified, kibibytes is assumed.

          jmap_max_concurrent_requests: 5
              The value to return for the maxConcurrentRequests property of the JMAP "urn:ietf:params:jmap:core"
              capabilities object. The Cyrus JMAP implementation does not enforce this rate-limit.

          jmap_max_calls_in_request: 50
              The maximum number of calls per JMAP request object.  Returned as the  maxCallsInRequest  property
              value of the JMAP "urn:ietf:params:jmap:core" capabilities object.

          jmap_max_delayed_send: 512d
              The    value    to    return    for    the    maxDelayedSend    property    of    the    JMAP   "‐
              urn:ietf:params:jmap:emailsubmission" capabilities object.  The Cyrus JMAP implementation does not
              enforce this limit.

              For backward compatibility, if no unit is specified, seconds is assumed.

          jmap_max_objects_in_get: 4096
              The  maximum number of ids that a JMAP client may request in a single "/get" type method call. The
              actual number of returned objects in the response may exceed this number if the JMAP  object  type
              supports  unbounded  "/get"  calls.  Returned as the maxObjectsInGet property value of the JMAP "‐
              urn:ietf:params:jmap:core" capabilities object.

          jmap_max_objects_in_set: 4096
              The maximum number of objects a JMAP client may send to create, update or destroy in a single /set
              type   method   call.    Returned   as   the   maxObjectsInSet  property  value  of  the  JMAP  "‐
              urn:ietf:params:jmap:core" capabilities object.

          jmap_mail_max_size_attachments_per_email: 10M
              The  value  to   return   for   the   maxSizeAttachmentsPerEmail   property   of   the   JMAP   "‐
              urn:ietf:params:jmap:mail"  capabilities  object.  The  Cyrus JMAP implementation does not enforce
              this size limit.

              For backward compatibility, if no unit is specified, kibibytes is assumed.

          jmap_nonstandard_extensions: 0
              If enabled, support non-standard JMAP  extensions.   If  not  enabled,  only  IETF  standard  JMAP
              functionality is supported.

          jmap_pushpoll: 60s
              The  interval  for polling for changes on an EventSource connection or when push has been ennabled
              on a WebSocket channel.  The minimum value is 1 second. A value of 0 will disable push.

              If no unit is specified, seconds is assumed.

          jmap_set_has_attachment: 1
              If enabled, the $hasAttachment flag is determined and set for new messages created with  the  JMAP
              Email/set  or  Email/import  methods.  This  option should typically be enabled, but installations
              using Cyrus-external message annatotors to determine the $hasAttachment flag might want to disable
              it.

          jmap_vacation: 1
              If enabled, support the JMAP vacation extension

          jmapuploadfolder: #jmap
              the name of the folder for JMAP uploads (#jmap)

          jmapsubmission_deleteonsend: 1
              If enabled (the default) then delete the EmailSubmission as soon as the email * has been sent

          jmapsubmissionfolder: #jmapsubmission
              the name of the folder for JMAP Submissions (#jmapsubmission)

          jmappushsubscriptionfolder: #jmappushsubscription
              the name of the folder for JMAP Push Subscriptions (#jmappushsubscription)

          jmapnotificationfolder: #jmapnotification
              the name of the folder for JMAP notifications (#jmapnotification)

          iolog: 0
              Should cyrus output I/O log entries

          ldap_authz: <none>
              SASL authorization ID for the LDAP server

          ldap_base: <empty string>
              Contains the LDAP base dn for the LDAP ptloader module

          ldap_bind_dn: <none>
              Bind  DN  for  the  connection  to the LDAP server (simple bind).  Do not use for anonymous simple
              binds

          ldap_deref: never
              Specify how aliases dereferencing is handled during search.

              Allowed values: search, find, always, never

          ldap_domain_base_dn: <empty string>
              Base DN to search for domain name spaces.

          ldap_domain_filter: (&(objectclass=domainrelatedobject)(associateddomain=%s))
              Filter to use searching for domains

          ldap_domain_name_attribute: associateddomain
              The attribute name for domains.

          ldap_domain_scope: sub
              Search scope

              Allowed values: sub, one, base

          ldap_domain_result_attribute: inetdomainbasedn
              Result attribute

          ldap_filter: (uid=%u)
              Specify a filter that searches user identifiers.  The following tokens can be used in  the  filter
              string:

              %%   = % %u   = user %U   = user portion of %u (%U = test when %u = test@domain.tld) %d   = domain
              portion of %u if available (%d = domain.tld when %u = test@domain.tld), otherwise same  as  %R  %R
              =  domain  portion  of %u starting with @ (%R = @domain.tld when %u = test@domain.tld) %D   = user
              dn.  (use when ldap_member_method: filter) %1-9 = domain tokens (%1 = tld, %2 = domain when  %d  =
              domain.tld)

              ldap_filter is not used when ldap_sasl is enabled.

          ldap_group_base: <empty string>
              LDAP base dn for ldap_group_filter.

          ldap_group_filter: (cn=%u)
              Specify a filter that searches for group identifiers.  See ldap_filter for more options.

          ldap_group_scope: sub
              Specify search scope for ldap_group_filter.

              Allowed values: sub, one, base

          ldap_id: <none>
              SASL authentication ID for the LDAP server

          ldap_mech: <none>
              SASL mechanism for LDAP authentication

          ldap_user_attribute: <none>
              Specify LDAP attribute to use as canonical user id

          ldap_member_attribute: <none>
              See ldap_member_method.

          ldap_member_base: <empty string>
              LDAP base dn for ldap_member_filter.

          ldap_member_filter: (member=%D)
              Specify a filter for "ldap_member_method: filter".  See ldap_filter for more options.

          ldap_member_method: attribute
              Specify  a  group  method.   The "attribute" method retrieves groups from a multi-valued attribute
              specified in ldap_member_attribute.

              The  "filter"  method  uses  a  filter,  specified  by   ldap_member_filter,   to   find   groups;
              ldap_member_attribute is a single-value attribute group name.  Allowed values: attribute, filter

          ldap_member_scope: sub
              Specify search scope for ldap_member_filter.

              Allowed values: sub, one, base

          ldap_password: <none>
              Password  for  the connection to the LDAP server (SASL and simple bind).  Do not use for anonymous
              simple binds

          ldap_realm: <none>
              SASL realm for LDAP authentication

          ldap_referrals: 0
              Specify whether or not the client should follow referrals.

          ldap_restart: 1
              Specify whether or not LDAP I/O operations are automatically restarted if they abort prematurely.

          ldap_sasl: 1
              Use SASL for LDAP binds in the LDAP PTS module.

          ldap_sasl_authc: <none>
              Deprecated.  Use ldap_id

          ldap_sasl_authz: <none>
              Deprecated.  Use ldap_authz

          ldap_sasl_mech: <none>
              Deprecated.  Use ldap_mech

          ldap_sasl_password: <none>
              Deprecated.  User ldap_password

          ldap_sasl_realm: <none>
              Deprecated.  Use ldap_realm

          ldap_scope: sub
              Specify search scope.

              Allowed values: sub, one, base

          ldap_servers: ldap://localhost/
              Deprecated.  Use ldap_uri

          ldap_size_limit: 1
              Specify a number of entries for a search request to return.

          ldap_start_tls: 0
              Use transport layer security for ldap:// using STARTTLS. Do not use ldaps://  in  'ldap_uri'  with
              this option enabled.

          ldap_time_limit: 5s
              How long to wait for a search request to complete.

              For backward compatibility, if no unit is specified, seconds is assumed.

          ldap_timeout: 5s
              How long a search can take before timing out.

              For backward compatibility, if no unit is specified, seconds is assumed.

          ldap_ca_dir: <none>
              Path to a directory with CA (Certificate Authority) certificates.

          ldap_ca_file: <none>
              Path to a file containing CA (Certificate Authority) certificate(s).

          ldap_ciphers: <none>
              List of SSL/TLS ciphers to allow.  The format of the string is described in ciphers(1).

          ldap_client_cert: <none>
              File containing the client certificate.

          ldap_client_key: <none>
              File containing the private client key.

          ldap_verify_peer: 0
              Require  and  verify  server certificate.  If this option is yes, you must specify ldap_ca_file or
              ldap_ca_dir.

          ldap_tls_cacert_dir: <none>
              Deprecated in favor of ldap_ca_dir.

          ldap_tls_cacert_file: <none>
              Deprecated in favor of ldap_ca_file.

          ldap_tls_cert: <none>
              Deprecated in favor of ldap_client_cert.

          ldap_tls_key: <none>
              Deprecated in favor of ldap_client_key.

          ldap_tls_check_peer: 0
              Deprecated in favor of ldap_verify_peer.

          ldap_tls_ciphers: <none>
              Deprecated in favor of ldap_ciphers.

          ldap_uri: <none>
              Contains a list of the URLs of all the LDAP servers when using the LDAP PTS module.

          ldap_version: 3
              Specify  the  LDAP  protocol  version.   If  ldap_start_tls  and/or  ldap_use_sasl  are   enabled,
              ldap_version will be automatically set to 3.

          literalminus: 0
              if  enabled,  CAPABILITIES  will  reply  with  LITERAL-  rather than LITERAL+ (RFC 7888).  Doesn't
              actually size-restrict uploads though

          lmtp_downcase_rcpt: 1
              If enabled, lmtpd will convert the recipient addresses to lowercase (up to  a  '+'  character,  if
              present).

          lmtp_exclude_specialuse: \Snoozed
              Don't allow delivery to folders with given special-use attributes.

              Note  that  "snoozing"  of  emails  can  currently only be done via the JMAP protocol, so delivery
              directly to the Snoozed mailbox is prohibited by default as it will not be moved back  into  INBOX
              automatically.

          lmtp_fuzzy_mailbox_match: 0
              If  enabled,  and  the mailbox specified in the detail part of the recipient (everything after the
              '+') does not exist, lmtpd will try to find the closest match (ignoring case, ignoring whitespace,
              falling back to parent) to the specified mailbox name.

          lmtp_over_quota_perm_failure: 0
              If  enabled,  lmtpd  returns  a  permanent  failure  code when a user's mailbox is over quota.  By
              default, the failure is temporary, causing the MTA to queue the message and retry later.

          lmtp_preparse: 0
              If enabled, lmtpd will map in the email and parse the xapian data for jmapsearch.   The  advantage
              is  that  the  parsing is done without holding any locks.  The disadvantage is that the parsing is
              done even if it winds up not being needed.

          lmtp_strict_quota: 0
              If enabled, lmtpd returns a failure code when the incoming message will cause the  user's  mailbox
              to exceed its quota.  By default, the failure won't occur until the mailbox is already over quota.

          lmtp_strict_rfc2821: 1
              By  default,  lmtpd  will  be  strict  (per RFC 2821) with regards to which envelope addresses are
              allowed.  If this option is set to false, 8bit characters in the local-part of envelope  addresses
              are changed to 'X' instead.  This is useful to avoid generating backscatter with certain MTAs like
              Postfix or Exim which accept such messages.

          lmtpsocket: {configdirectory}/socket/lmtp
              Unix domain socket that lmtpd listens on, used by deliver(8). This should match the path specified
              in cyrus.conf(5).

          lmtptxn_timeout: 5m
              Timeout used during a lmtp transaction to a remote backend (e.g. in a murder environment).  Can be
              used to prevent hung lmtpds on proxy hosts when a backend server  becomes  unresponsive  during  a
              lmtp transaction.  The default is 5 minutes - change to zero for infinite.

              For backward compatibility, if no unit is specified, seconds is assumed.

          lock_debugtime: <none>
              A  floating  point  number of seconds.  If set, time how long we wait for any lock, and syslog the
              filename and time if it's longer than this value.  The default of NULL means not to time locks.

          loginrealms: <empty string>
              The  list  of  remote  realms  whose  users  may  authenticate  using  cross-realm  authentication
              identifiers.   Separate  each  realm  name  by a space.  (A cross-realm identity is considered any
              identity returned by SASL with an "@" in it.).

          loginuseacl: 0
              If enabled, any authentication identity which has a rights on a user's INBOX may log  in  as  that
              user.

          logtimestamps: 0
              Include  notations  in the protocol telemetry logs indicating the number of seconds since the last
              command or response.

          mailbox_default_options: 0
              Default "options" field for the mailbox on create.  You'll want to know what you're  doing  before
              setting this, but it can apply some default annotations like duplicate suppression

          mailbox_initial_flags: <none>
              space-separated  list of permanent flags which will be pre-set in every newly created mailbox.  If
              you know you will require particular flag names then this avoids a possible race condition against
              a client that fills the entire 128 available slots.  Default is NULL, which is no flags.  Example:
              $Label1 $Label2 $Label3 NotSpam Spam

          mailbox_legacy_dirs: 0
              if enabled, new mailboxes without parents will be created with legacy  paths.   sub  mailboxes  of
              users will still inherit the parent legacy setting

          mailbox_maxmessages_addressbook: 0
              Limit the number of messages that may exist in a single mailbox of "addressbook" type. Default (0)
              means no limit.  This limit applies after quotas are checked, so if you have both quota limits and
              this set, then you will be denied if you are either over quota or over this per-mailbox count.

          mailbox_maxmessages_calendar: 0
              Limit  the  number  of messages that may exist in a single mailbox of "calendar" type. Default (0)
              means no limit.  This limit applies after quotas are checked, so if you have both quota limits and
              this set, then you will be denied if you are either over quota or over this per-mailbox count.

          mailbox_maxmessages_email: 0
              Limit  the number of messages that may exist in a single mailbox of "email" (normal) type. Default
              (0) means no limit.  This limit applies after quotas are checked, so if you have both quota limits
              and this set, then you will be denied if you are either over quota or over this per-mailbox count.

          mailnotifier: <none>
              Notifyd(8) method to use for "MAIL" notifications.  If not set, "MAIL" notifications are disabled.

          master_bind_errors_fatal: 0
              If  enabled,  failure to bind a port during startup is treated as a fatal error, causing master to
              shut down immediately.  The default is to keep running, with the affected service  disabled  until
              the next SIGHUP causes it to retry.

              Note  that  this  only applies during startup.  New services that fail to come up in response to a
              reconfig+SIGHUP will just be logged and disabled  like  the  default  behaviour,  without  causing
              master to exit.

          maxheaderlines: 1000
              Maximum  number  of  lines of header that will be processed into cache records.  Default 1000.  If
              set to zero, it is unlimited.  If a message hits the limit, an error will be logged and  the  rest
              of  the  lines  in  the header will be skipped.  This is to avoid malformed messages causing giant
              cache records

          maxlogins_per_host: 0
              Maximum number of logged in sessions allowed per host, zero means no limit

          maxlogins_per_user: 0
              Maximum number of logged in sessions allowed per user, zero means no limit

          maxargssize: 0
              Maximum total size of arguments to an IMAP command that will be accepted by Cyrus.  Commands  with
              arguments that exceed this limit will be rejected.

              If set to 0 (the default), a large internally-defined limit will be applied.

              If no unit is specified, bytes is assumed.

          maxmessagesize: 0
              Maximum  size  of  messages  that  will  be accepted by Cyrus.  This affects LMTP deliveries, IMAP
              appends, DAV uploads, etc.  Messages larger than this will be rejected.

              If set to 0 (the default), a large internally-defined limit will be applied.

              If no unit is specified, bytes is assumed.

          maxliteral: 128K
              Maximum size of a single literal allowed by the IMAP parser.

              If set to 0, a large internally-defined limit will be applied.

              If no unit is specified, bytes is assumed.

              Literals used for message [part] data in APPEND are only limited by the 'maxmessagesize' option.

              If the 'literalminus' option is enabled, non-synchonizing literals will be limited to  the  lesser
              of 4K and either 'maxliteral' or 'maxmessagesize', depending on the use-case.

          maxquoted: 128K
              Maximum size of a single quoted string allowed by the IMAP parser.

              If set to 0, a large internally-defined limit will be applied.

              If no unit is specified, bytes is assumed.

          maxword: 128K
              Maximum size of a single word allowed by the IMAP parser.

              If set to 0, a large internally-defined limit will be applied.

              If no unit is specified, bytes is assumed.

          mboxkey_db: twoskip
              The cyrusdb backend to use for mailbox keys.

              Allowed values: skiplist, twoskip, zeroskip

          mboxlist_db: twoskip
              The cyrusdb backend to use for the mailbox list.

              Allowed values: flat, skiplist, sql, twoskip, zeroskip

          mboxlist_db_path: <none>
              The absolute path to the mailboxes db file.  If not specified will be configdirectory/mailboxes.db

          mboxname_lockpath: <none>
              Path to mailbox name lock files (default $conf/lock)

          metapartition_files: <empty string>
              Space-separated  list of metadata files to be stored on a metapartition rather than in the mailbox
              directory  on  a  spool  partition.   Allowed  values:  header,  index,  cache,  expunge,   squat,
              annotations, lock, dav, archivecache

          metapartition-name: <none>
              The pathname of the metadata partition name, corresponding to spool partition partition-name.  For
              any  mailbox  residing  in  a  directory  on  partition-name,  the  metadata   files   listed   in
              metapartition_files will be stored in a corresponding directory on metapartition-name.   Note that
              not every partition-name option is required to have a corresponding metapartition-name option,  so
              that you can selectively choose which spool partitions will have separate metadata partitions.

          mupdate_authname: <none>
              The  SASL  username  (Authentication  Name)  to  use when authenticating to the mupdate server (if
              needed).

          mupdate_config: standard
              The configuration of the mupdate servers in the Cyrus Murder.  The "standard"  config  is  one  in
              which  there  are  discreet  frontend (proxy) and backend servers.  The "unified" config is one in
              which a server can be both a frontend and backend.   The  "replicated"  config  is  one  in  which
              multiple  backend  servers all share the same mailspool, but each have their own "replicated" copy
              of mailboxes.db.  Allowed values: standard, unified, replicated

          munge8bit: 1
              If enabled, lmtpd munges messages with 8-bit characters in the headers.  The 8-bit characters  are
              changed to `X'.  If reject8bit is enabled, setting munge8bit has no effect.  (A proper solution to
              non-ASCII characters in headers is offered by RFC 2047 and its predecessors.)

          mupdate_connections_max: 128
              The max number of connections that a mupdate process will allow, this is related to the number  of
              file  descriptors  in  the  mupdate  process.   Beyond this number connections will be immediately
              issued a BYE response.

          mupdate_password: <none>
              The SASL password (if needed) to use when authenticating to the mupdate server.

          mupdate_port: 3905
              The port of the mupdate server for the Cyrus Murder

          mupdate_realm: <none>
              The SASL realm (if needed) to use when authenticating to the mupdate server.

          mupdate_retry_delay: 20
              The base time to wait between connection retries to the mupdate server.

          mupdate_server: <none>
              The mupdate server for the Cyrus Murder

          mupdate_username: <empty string>
              The SASL username (Authorization Name) to use when authenticating to the mupdate server

          mupdate_workers_max: 50
              The maximum number of mupdate worker threads (overall)

          mupdate_workers_maxspare: 10
              The maximum number of idle mupdate worker threads

          mupdate_workers_minspare: 2
              The minimum number of idle mupdate worker threads

          mupdate_workers_start: 5
              The number of mupdate worker threads to start

          netscapeurl: <none>
              If enabled at compile time, this specifies a URL to reply when Netscape asks the server where  the
              mail administration HTTP server is.  Administrators should set this to a local resource.

          newsaddheaders: to
              Space-separated  list  of headers to be added to incoming usenet articles.  Added To: headers will
              contain email delivery addresses corresponding to each newsgroup in the Newsgroups: header.  Added
              Reply-To:  headers  will  contain  email delivery addresses corresponding to each newsgroup in the
              Followup-To: or Newsgroups: header.  If the specified header(s) already exist in an  article,  the
              email delivery addresses will be appended to the original header body(s).

              This option applies if and only if the newspostuser option is set.  Allowed values: to, replyto

          newsgroups: *
              A  wildmat  pattern  specifying  which  mailbox hierarchies should be treated as newsgroups.  Only
              mailboxes matching the wildmat will accept and/or serve articles via NNTP.  If not set, a  default
              wildmat  of  "*"  (ALL  shared mailboxes) will be used.  If the newsprefix option is also set, the
              default wildmat will be translated to "<newsprefix>.*"

          newsmaster: news
              Userid that is used for checking access controls when  executing  Usenet  control  messages.   For
              instance,  to  allow articles to be automatically deleted by cancel messages, give the "news" user
              the 'd' right on the desired mailboxes.  To allow newsgroups to be automatically created,  deleted
              and  renamed  by  the  corresponding  control  messages, give the "news" user the 'c' right on the
              desired mailbox hierarchies.

          newspeer: <none>
              A list of whitespace-separated news server specifications to which articles should be  fed.   Each
              server  specification  is a string of the form [user[:pass]@]host[:port][/wildmat] where 'host' is
              the fully qualified hostname of the server, 'port' is the port on which the server  is  listening,
              'user'  and  'pass'  are  the authentication credentials and 'wildmat' is a pattern that specifies
              which groups should be fed.  If no 'port' is specified, port 119 is  used.   If  no  'wildmat'  is
              specified, all groups are fed.  If 'user' is specified (even if empty), then the NNTP POST command
              will be used to feed the article to the server, otherwise the IHAVE command will be used.

              A '@' may be used in place of '!' in the wildmat to prevent feeding articles cross-posted  to  the
              given  group,  otherwise  cross-posted  articles  are fed if any part of the wildmat matches.  For
              example, the string "peer.example.com:*,!control.*,@local.*" would feed all groups except  control
              messages  and  local  groups  to  peer.example.com.  In the case of cross-posting to local groups,
              these articles would not be fed.

          newspostuser: <none>
              Userid used to deliver usenet articles to newsgroup folders (usually via lmtp2nntp).  For example,
              if  set  to "post", email sent to "post+comp.mail.imap" would be delivered to the "comp.mail.imap"
              folder.

              When set, the Cyrus NNTP server will add the header(s) specified in the newsaddheaders  option  to
              each  incoming  usenet  article.   The  added  header(s)  will  contain  email  delivery addresses
              corresponding to each relevant newsgroup.  If not set, no headers are added to usenet articles.

          newsprefix: <none>
              Prefix to be prepended to newsgroup names to make the corresponding IMAP mailbox names.

          newsrc_db_path: <none>
              The absolute path to the newsrc db file.  If not specified, will be configdirectory/fetchnews.db

          nntptimeout: 3m
              Set the length of the NNTP server's inactivity autologout timer.  The minimum value is 3  minutes,
              also the default.

              For backward compatibility, if no unit is specified, minutes is assumed.

          notesmailbox: <none>
              The  top level mailbox in each user's account which is used to store * Apple-style Notes.  Default
              is blank (disabled)

          notifysocket: {configdirectory}/socket/notify
              Unix domain socket that the mail notification daemon listens on.

          notify_external: <none>
              Path to the external program that notifyd(8) will call to send mail notifications.

              The external program will be called with the following command line options:

                 -c class

                 -p priority

                 -u user

                 -m mailbox

                 And the notification message will be available on stdin.

          partition-name: <none>
              The pathname of the partition name.  At least one partition pathname MUST be  specified.   If  the
              defaultpartition  option  is used, then its pathname MUST be specified.  For example, if the value
              of the defaultpartion option is part1, then the partition-part1 field is required.

          partition_select_mode: freespace-most
              Partition selection mode.

              random (pseudo-)random selection

              freespace-most
                     partition with the most free space (KiB)

              freespace-percent-most
                     partition with the most free space (%)

              freespace-percent-weighted
                     each partition is weighted according to its  free  space  (%);  the  more  free  space  the
                     partition has, the more chances it has to be selected

              freespace-percent-weighted-delta
                     each  partition  is  weighted according to its difference of free space (%) compared to the
                     most used partition; the more the partition is lagging behind the most used partition,  the
                     more chances it has to be selected

                     Note that actually even the most used partition has a few chances to be selected, and those
                     chances increase when other partitions get closer

                     Allowed values: random, freespace-most, freespace-percent-most, freespace-percent-weighted,
                     freespace-percent-weighted-delta

          partition_select_exclude: <none>
              List of partitions to exclude from selection mode.

          partition_select_usage_reinit: 0
              For  a  given  session, number of operations (e.g. partition selection) for which partitions usage
              data are cached.

          partition_select_soft_usage_limit: 0
              Limit of partition usage (%): if a partition is over that limit, it is automatically excluded from
              selection mode.

              If all partitions are over that limit, this feature is not used anymore.

          plaintextloginpause: <none>
              Time to pause after a successful plaintext login.  For systems that support strong authentication,
              this permits users to perceive a cost of using plaintext passwords.  (This does not affect the use
              of PLAIN in SASL authentications.)

              For backward compatibility, if no unit is specified, seconds is assumed.

          plaintextloginalert: <none>
              Message to send to client after a successful plaintext login.

          popexpiretime: -1
              The  duration advertised as being the minimum a message may be left on the POP server before it is
              deleted (via the CAPA command, defined in the POP3 Extension Mechanism,  which  some  clients  may
              support).   This  duration  has  a granularity of whole days, with partial days truncated (so e.g.
              "45m" is effectively "0d").  "NEVER", the default, may be specified with a negative number.

              The Cyrus POP3 server never deletes mail, no matter what the value of this parameter is.  However,
              if a site implements a less liberal policy, it needs to change this parameter accordingly.

              For backward compatibility, if no unit is specified, days is assumed.

          popminpoll: <none>
              Set the minimum amount of time the server forces users to wait between successive POP logins.

              For backward compatibility, if no unit is specified, minutes is assumed.

          popsubfolders: 0
              Allow   access  to  subfolders  of  INBOX  via  POP3  by  using  userid+subfolder  syntax  as  the
              authentication/authorization id.

          poppollpadding: 1
              Create a softer minimum poll restriction.  Allows poppollpadding connections  before  the  minpoll
              restriction  is triggered.  Additionally, one padding entry is recovered every popminpoll minutes.
              This allows for the occasional polling rate  faster  than  popminpoll,  (i.e.,  for  clients  that
              require  a  send/receive  to  send  mail)  but  still  enforces  the rate long-term.  Default is 1
              (disabled).

              The easiest way to think of it is a queue of past connections, with  one  slot  being  filled  for
              every connection, and one slot being cleared every popminpoll minutes. When the queue is full, the
              user will not be able to check mail again until a slot is cleared.  If the user waits a sufficient
              amount of time, they will get back many or all of the slots.

          poptimeout: 10m
              Set  the length of the POP server's inactivity autologout timer.  The minimum value is 10 minutes,
              the default.

              For backward compatibility, if no unit is specified, minutes is assumed.

          popuseacl: 0
              Enforce IMAP ACLs in the pop server.  Due to the nature of the  POP3  protocol,  the  only  rights
              which  are  used  by  the  pop server are 'r', 't', and 's' for the owner of the mailbox.  The 'r'
              right allows the user to open the mailbox and list/retrieve messages.  The 't'  right  allows  the
              user  to  delete  messages.  The 's' right allows messages retrieved by the user to have the \Seen
              flag set (only if popuseimapflags is also enabled).

          popuseimapflags: 0
              If enabled, the pop server will set and obey IMAP flags.  Messages having the  \Deleted  flag  are
              ignored  as  if  they do not exist.  Messages that are retrieved by the client will have the \Seen
              flag set.  All messages will have the \Recent flag unset.

          postmaster: postmaster
              Username that is used as the 'From' address in rejection MDNs produced by sieve.

          postuser: <empty string>
              Userid used to deliver messages to shared folders.  For example, if set to  "bb",  email  sent  to
              "bb+shared.blah"  would be delivered to the "shared.blah" folder.  By default, an email address of
              "+shared.blah" would be used.

          proc_path: <none>
              Path to proc directory.  Default is NULL -  must  be  an  absolute  path  if  specified.   If  not
              specified, the path $configdirectory/proc/ will be used.

          prometheus_enabled: 0
              Whether tracking of service metrics for Prometheus is enabled.

          prometheus_need_auth: admin
              Authentication level required to fetch Prometheus metrics.

              Allowed values: none, user, admin

          prometheus_update_freq: 10s
              Frequency  in at which promstatsd should re-collate its statistics report.  The minimum value is 1
              second, the default is 10 seconds.

              For backward compatibility, if no unit is specified, seconds is assumed.

          prometheus_stats_dir: <none>
              Directory to use for gathering prometheus statistics.  If specified, must be an absolute path.  If
              not  specified,  the default path $configdirectory/stats/ will be used.  It may be advantageous to
              locate this directory on ephemeral storage.

          proxy_authname: proxy
              The authentication name to use when authenticating to a backend server in the Cyrus Murder.

          proxy_compress: 0
              Try to enable protocol-specific compression when performing  a  client  connection  to  a  backend
              server in the Cyrus Murder.

              Note  that  this should only be necessary over slow network connections.  Also note that currently
              only IMAP and MUPDATE support compression.

          proxy_password: <none>
              The default password to use when authenticating to a backend server in the Cyrus Murder.   May  be
              overridden on a host-specific basis using the hostname_password option.

          proxy_realm: <none>
              The authentication realm to use when authenticating to a backend server in the Cyrus Murder

          proxyd_allow_status_referral: 0
              Set  to  true  to  allow  proxyd  to issue referrals to clients that support it when answering the
              STATUS command.  This is disabled by default since some clients issue many STATUS  commands  in  a
              row, and do not cache the connections that these referrals would cause, thus resulting in a higher
              authentication load on the respective backend server.

          proxyd_disable_mailbox_referrals: 0
              Set to true to disable the use of mailbox-referrals on the proxy servers.

          proxyservers: <none>
              A list of users and groups that are allowed to proxy for other users, separated  by  spaces.   Any
              user  listed in this will be allowed to login for any other user: use with caution.  In a standard
              murder this option should ONLY be set on backends.  DO NOT SET on frontends or things  won't  work
              properly.

          pts_module: afskrb
              The PTS module to use.

              Allowed values: afskrb, ldap, http

          ptloader_sock: <none>
              Unix domain socket that ptloader listens on.  (defaults to configdirectory/ptclient/ptsock)

          ptscache_db: twoskip
              The cyrusdb backend to use for the pts cache.

              Allowed values: skiplist, twoskip, zeroskip

          ptscache_db_path: <none>
              The absolute path to the ptscache db file.  If not specified, will be configdirectory/ptscache.db

          ptscache_timeout: 3h
              The  timeout for the PTS cache database when using the auth_krb_pts authorization method (default:
              3 hours).

              For backward compatibility, if no unit is specified, seconds is assumed.

          ptskrb5_convert524: 1
              When using the AFSKRB  ptloader  module  with  Kerberos  5  canonicalization,  do  the  final  524
              conversion to get a n AFS style name (using '.' instead of '/', and using short names

          ptskrb5_strip_default_realm: 1
              When  using  the  AFSKRB ptloader module with Kerberos 5 canonicalization, strip the default realm
              from the userid (this does not affect the stripping of realms specified by the  afspts_localrealms
              option)

          qosmarking: cs0
              This  specifies the Class Selector or Differentiated Services Code Point designation on IP headers
              (in the ToS field).  Allowed values: cs0, cs1, cs2, cs3, cs4, cs5, cs6,  cs7,  af11,  af12,  af13,
              af21, af22, af23, af31, af32, af33, af41, af42, af43, ef

          quota_db: quotalegacy
              The cyrusdb backend to use for quotas.

              Allowed values: flat, skiplist, sql, quotalegacy, twoskip, zeroskip

          quota_db_path: <none>
              The  absolute path for the quota database (if you choose a single-file quota DB type - or the base
              path  if  you  choose  quotalegacy).   If  not  specified  will  be  configdirectory/quotas.db  or
              configdirectory/quota/

          quota_use_conversations: 0
              If  conversations  it  enabled and quotaroot is a user folder, use the conversations quota counts,
              which count multiple copies of exactly the same message (by GUID) as only one

          quotawarn: 90
              Deprecated in favour of quotawarnpercent.

          quotawarnpercent: 90
              The percent of quota utilization over which the server generates warnings.

          quotawarnkb: <none>
              Deprecated in favour of quotawarnsize.

          quotawarnsize: 0
              The maximum amount of free space at which to give a quota warning (if this value is 0, or  if  the
              quota is smaller than this amount, then warnings are always given).

              Note  that quota has kibibyte granularity.  Values specified here will be truncated to the nearest
              whole kibibyte.

              For backward compatibility, if no unit is specified, kibibytes is assumed.

          quotawarnmsg: 0
              The maximum amount of messages at which to give a quota warning (if this value is  0,  or  if  the
              quota is smaller than this amount, then warnings are always given).

          readonly: 0
              If enabled, all IMAP, POP and JMAP connections are read-only, * no writes allowed

          reject8bit: 0
              If enabled, lmtpd rejects messages with 8-bit characters in the headers.

          restore_authname: <none>
              The authentication used by the restore tool when authenticating to an IMAP/sync server.

          restore_password: <none>
              The password used by the restore tool when authenticating to an IMAP/sync server.

          restore_realm: <none>
              The authentication realm used by the restore tool when authenticating to an IMAP/sync server.

          reverseacls: 0
              At startup time, ctl_cyrusdb -r will check this value and it will either add or remove reverse ACL
              pointers from mailboxes.db

          reverseuniqueids: 1
              Deprecated. No longer used

          rfc2046_strict: 0
              If enabled, imapd will be strict (per RFC 2046) when matching MIME boundary strings.   This  means
              that  boundaries  containing  other  boundaries as substrings will be treated as identical.  Since
              enabling this option will break  some  messages  created  by  Eudora  5.1  (and  earlier),  it  is
              recommended that it be left disabled unless there is good reason to do otherwise.

          rfc2047_utf8: 0
              If  enabled,  imapd  will  parse any non-encoded character sequence in MIME header values as UTF8.
              This is useful for installations that either  advertise  the  UTF8SMTP  (RFC  5335)  extension  or
              receive  mails with improperly escaped UTF-8 byte sequences. It is recommended that this option is
              left disabled unless there is good reason to do otherwise.

          rfc3028_strict: 1
              If enabled, Sieve will be strict (per RFC 3028) with regards to which headers are  allowed  to  be
              used  in  address  and  envelope  tests.   This means that only those headers which are defined to
              contain addresses will be allowed in address tests and only "to" and "from"  will  be  allowed  in
              envelope tests.  When disabled, ANY grammatically correct header will be allowed.

          rss_feedlist_template: <none>
              File  containing  HTML  that  will  be used as a template for displaying the list of available RSS
              feeds.  A single instance of the variable %RSS_FEEDLIST% should appear in the file, which will  be
              replaced  by a nested unordered list of feeds.  The toplevel unordered list will be tagged with an
              id of "feed" (<ul  id='feed'>)  which  can  be  used  by  stylesheet(s)  in  your  template.   The
              dynamically  created list of feeds based on the HTML template will be accessible at the "/rss" URL
              on the server.

          rss_feeds: *
              A wildmat pattern specifying which mailbox hierarchies should  be  treated  as  RSS  feeds.   Only
              mailboxes  matching the wildmat will have their messages available via RSS.  If not set, a default
              wildmat of "*" (ALL mailboxes) will be used.

          rss_maxage: <none>
              Maximum age of items to display in an RSS channel.  If non-zero, httpd  will  only  display  items
              received  within  this  time  period.   If  set  to  0, all available items will be displayed (the
              default).

              For backward compatibility, if no unit is specified, days is assumed.

          rss_maxitems: 0
              Maximum number of items to display in an RSS channel.  If non-zero, httpd  will  display  no  more
              than  the rss_maxitems most recent items.  If set to 0, all available items will be displayed (the
              default).

          rss_maxsynopsis: 0
              Maximum RSS item synopsis length.  If  non-zero,  httpd  will  display  no  more  than  the  first
              rss_maxsynopsis  characters  of  an  item's  synopsis.   If  set to 0, the entire synopsis will be
              displayed (the default).

          rss_realm: <none>
              The realm to present for HTTP authentication of RSS feeds.  If not set (the default), the value of
              the "servername" option will be used.

          sasl_auto_transition: 0
              If  enabled,  the  SASL  library  will  automatically  create  authentication secrets when given a
              plaintext password.  See the SASL documentation.

          sasl_maximum_layer: 256
              Maximum SSF (security strength factor) that the server will allow a client to negotiate.

          sasl_minimum_layer: 0
              The minimum SSF that the server will allow a client to negotiate.  A value of 1 requires integrity
              protection; any higher value requires some amount of encryption.

          sasl_option: 0
              Any SASL option can be set by preceding it with sasl_.  This file overrides the SASL configuration
              file.

          sasl_pwcheck_method: <none>
              The mechanism used  by  the  server  to  verify  plaintext  passwords.   Possible  values  include
              "auxprop", "saslauthd", and "pwcheck".

          search_batchsize: 20
              The  number of messages to be indexed in one batch (default 20).  Note that long batches may delay
              user commands or mail delivery.

          search_attachment_extractor_url: <none>
              A HTTP or HTTPS URL to extract search text from rich  text  attachments  and  other  media  during
              search indexing. The server at this URL must implement the following protocol:

              1.   For   each   attachment   of   an   email,   Cyrus   sends   a   GET   request   to  the  URL
              <extractor-url>/<cyrus-id>, where <extractor-url> is  the  configured  URL  and  <cyrus-id>  is  a
              Cyrus-chosen path segment that uniquely identifies this attachment.

              2.  If  the  extractor  already  has  a  cached plain text extract of the attachment identified by
              <cyrus-id> then it may return HTTP status code  200  (OK)  and  the  plain  text  extract  with  a
              Content-Type "text/plain" header. Otherwise it must return HTTP status 404 (Not Found).

              3. If Cyrus receives the HTTP status code 404 (Not Found), then it sends a PUT request to the same
              URL as previously. The PUT request body contains the decoded, binary body of the  attachment.  The
              Content-Type request header has the same value as declared in the MIME part headers, including any
              type parameters.

              4. The extractor must return the plain text extract with  either  HTTP  status  200  (OK)  or  201
              (Created) and a Content-Type "text/plain" header.  If no text can be extracted, then the extractor
              may return any return code in the range 4xx, or 200 and an empty response body.

              Any other HTTP status code is treated as an error. For  performance  reasons,  the  Cyrus  indexer
              attempts to keep-alive the TCP connection to the extractor.  Xapian only.

          search_index_language: 0
              If  enabled,  then  messages  bodies  are  stemmed by detected language in addition to the default
              English stemmer.  Xapian only.

          search_index_parts: 0
              Deprecated. No longer used.

          search_index_skip_domains: <none>
              A space separated list of domains - if set, any users in the listed domains will be  skipped  when
              indexing.

          search_index_skip_users: <none>
              A space separated list of usernames - if set, any users in the list will be skipped when indexing.

          search_query_language: 0
              Deprecated. No longer used.

          search_normalisation_max: 1000
              A  resource  bound  for the combinatorial explosion of search expression tree complexity caused by
              normalising expressions with many OR nodes.  These can use more CPU time  to  optimise  than  they
              save IO time in scanning folders.

          search_engine: none
              The indexing engine used to speed up searching.

              Allowed values: none, squat, xapian

          search_fuzzy_always: 0
              Whether  to enable RFC 6203 FUZZY search for all IMAP SEARCH. If turned on, search attributes will
              be searched using FUZZY search by default.  If turned off, clients  have  to  explicitly  use  the
              FUZZY search key to enable fuzzy search for regular SEARCH commands.

          search_index_headers: 1
              Whether  to  index  headers other than From, To, Cc, Bcc, and Subject.  Experiment shows that some
              headers such as Received and DKIM-Signature can contribute up to 2/3rds  of  the  index  size  but
              almost nothing to the utility of searching.  Note that if header indexing is disabled, headers can
              still be searched, the searches will just be slower.

          search_indexed_db: twoskip
              The cyrusdb backend to use for the search latest indexed uid state.  Xapian only.

              Allowed values: flat, skiplist, twoskip, zeroskip

          search_maxtime: <none>
              The maximum number of seconds to run a search for before aborting.   Default  of  no  value  means
              search "forever" until other timeouts.

          search_maxsize: 4M
              The  maximum  size  to  index  for  each message part. Message contents that occur after this byte
              offset will not be indexed nor used to generate search snippets. Xapian-only.

              For backward compatibility, if no unit is specified, kibibytes is assumed.

          search_queryscan: 5000
              The minimum number of records require to do a direct scan of all G  keys  *  rather  than  indexed
              lookups.  A value of 0 means always do indexed lookups.

          search_skipdiacrit: 1
              When  searching,  should diacriticals be stripped from the search terms.  The default is "true", a
              search for "hav" will  match  "Håvard".   This  is  not  RFC  5051  compliant,  but  it  backwards
              compatible, and may be preferred by some sites.

          search_skiphtml: 0
              If  enabled,  HTML parts of messages are skipped, i.e. not indexed and not searchable.  Otherwise,
              they're indexed.

          search_whitespace: merge
              When searching, how whitespace should be handled.  Options are: "skip" (default in 2.3 and earlier
              series)  -  where  a  search for "equi" would match "the quick brown fox".  "merge" - the default,
              where "he  qu" would match "the  quick    brownfox",  and  "keep",  where  whitespace  must  match
              exactly.   The  default  of  "merge"  is recommended for most cases - it's a good compromise which
              keeps words separate.  Allowed values: skip, merge, keep

          search_snippet_length: 255
              The maximum byte length of a snippet generated by the XSNIPPETS command.  Only  supported  by  the
              Xapian  search backend, which attempts to always fill search_snippet_length bytes in the generated
              snippet.

          search_stopword_path: <none>
              The absolute base path to the search stopword lists. If not specified, no stopwords will be  taken
              into  account  during search indexing. Currently, the only supported and default stop word file is
              english.txt.

          searchpartition-name: <none>
              The pathname where to store the xapian search indexes of searchtier  for  mailboxes  of  partition
              name.  This  must  be  configured  for  the  defaultsearchtier and any additional search tier (see
              squatter for details).

              For example: if defaultpartition is defined as part1  and  defaultsearchtier  as  tier1  then  the
              configuration  must  contain  an  entry  tier1searchpartition-part1 that defines the path where to
              store this tier1's search index for the part1 partition.

              This option MUST be specified for xapian search.

          seenstate_db: twoskip
              The cyrusdb backend to use for the seen state.

              Allowed values: flat, skiplist, twoskip, zeroskip

          sendmail: /usr/lib/sendmail
              The pathname of the sendmail executable.  Sieve invokes sendmail for sending rejections, redirects
              and vacation responses.

          sendmail_auth_id: CYRUS_SENDMAIL_AUTH_ID
              The  name of an environment variable to set when invoking sendmail.  The value of this environment
              variable will contain the user id of the currently authenticated user. If no user is authenticated
              the environment variable is not set.

          serverlist: <none>
              Whitespace  separated  list  of  backend  server  names.   Used  for  finding server with the most
              available free space for proxying CREATE.

          serverlist_select_mode: freespace-most
              Server selection mode.

              random (pseudo-)random selection

              freespace-most
                     backend with the most (total) free space (KiB)

              freespace-percent-most
                     backend whose partition has the most free space (%)

              freespace-percent-weighted
                     same as for partition selection, comparing the free space (%) of the least  used  partition
                     of each backend

              freespace-percent-weighted-delta
                     same  as  for partition selection, comparing the free space (%) of the least used partition
                     of each backend.

                     Allowed values: random, freespace-most, freespace-percent-most, freespace-percent-weighted,
                     freespace-percent-weighted-delta

          serverlist_select_usage_reinit: 0
              For  a  given  session, number of operations (e.g. backend selection) for which backend usage data
              are cached.

          serverlist_select_soft_usage_limit: 0
              Limit of backend usage (%): if a backend is over that limit, it  is  automatically  excluded  from
              selection mode.

              If all backends are over that limit, this feature is not used anymore.

          servername: <none>
              This  is the hostname visible in the greeting messages of the POP, IMAP and LMTP daemons. If it is
              unset, then the result returned from gethostname(2) is used.  This  is  also  the  value  used  by
              murder  clusters  to  identify the host name.  It should be resolvable by DNS to the correct host,
              and unique within an active cluster.  If you are using low level replication (e.g. drbd)  then  it
              should  be  the  same  on  each  copy  and  the DNS name should also be moved to the new master on
              failover.

          serverinfo: on
              The server information to display  in  the  greeting  and  capability  responses.  Information  is
              displayed as follows:
                 "off" = no server information in the greeting or capabilities

                 "min" = servername in the greeting; no server information in the capabilities

                 "on" = servername and product version in the greeting; product version in the capabilities

                 Allowed values: off, min, on

          sharedprefix: Shared Folders
              If  using  the  alternate  IMAP  namespace,  the  prefix  for the shared namespace.  The hierarchy
              delimiter will be automatically appended.

          sieve_allowreferrals: 1
              If enabled, timsieved will issue referrals to clients when the user's scripts reside on  a  remote
              server (in a Murder).  Otherwise, timsieved will proxy traffic to the remote server.

          sieve_duplicate_max_expiration: 90d
              Maximum expiration time for duplicate message tracking records.

              For backward compatibility, if no unit is specified, seconds is assumed.

          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 vnd.cyrus.imip snooze
              Space-separated list of Sieve extensions  allowed  to  be  used  in  sieve  scripts,  enforced  at
              submission by timsieved(8).  Any previously installed script will be unaffected by this option and
              will continue to execute regardless of the extensions used.  This option has no effect on  options
              that  are  disabled  at compile time (e.g., "regex").  Allowed values: 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,   vnd.cyrus.imip,
              snooze=vnd.cyrus.snooze=x-cyrus-snooze

          sieve_folder: #sieve
              The name of the folder for storing Sieve scripts (#sieve)

          sieve_maxscriptsize: 32K
              Maximum size any sieve script can be, enforced at submission by timsieved(8) and JMAP.

              For backward compatibility, if no unit is specified, kibibytes is assumed.

          sieve_maxscripts: 5
              Maximum number of sieve scripts any user may have, enforced at submission by timsieved(8).

          sieve_utf8fileinto: 0
              If enabled, the sieve engine expects folder names for the fileinto action in scripts to  use  UTF8
              encoding.  Otherwise, modified UTF7 encoding should be used.

          sieve_sasl_send_unsolicited_capability: 0
              If  enabled, timsieved will emit a capability response after a successful SASL authentication, per
              draft-martin-managesieve-12.txt .

          sieve_use_lmtp_reject: 1
              Enabled by default.  If reject can be done via LMTP, then return a 550 rather than generating  the
              bounce message in Cyrus.

          sieve_vacation_min_response: 3d
              Minimum time interval between consecutive vacation responses, per draft-ietf-vacation-seconds.txt.
              The default is 3 days.

              For backward compatibility, if no unit is specified, seconds is assumed.

          sieve_vacation_max_response: 90d
              Maximum time interval between consecutive vacation responses, per draft-ietf-vacation-seconds.txt.
              The default is 90 days.  The minimum is 7 days.

              For backward compatibility, if no unit is specified, seconds is assumed.

          sievedir: /usr/sieve
              If sieveusehomedir is false, this directory is searched for Sieve scripts.

          sievenotifier: <none>
              Notifyd(8)  method  to  use  for  "SIEVE"  notifications.   If  not set, "SIEVE" notifications are
              disabled.

              This method is only used when no method is specified in the script.

          sieveusehomedir: 0
              If enabled, lmtpd will look for Sieve scripts in user's home directories: ~user/.sieve.

          anysievefolder: 0
              It must be "yes" in order to permit the autocreation of any INBOX subfolder requested by  a  sieve
              filter, through the "fileinto" action. (default = no)

          singleinstancestore: 1
              If  enabled,  imapd, lmtpd and nntpd attempt to only write one copy of a message per partition and
              create hard links, resulting in a potentially large disk savings.

          skiplist_always_checkpoint: 1
              If enabled, this option forces the skiplist cyrusdb backend to  always  checkpoint  when  doing  a
              recovery.   This causes slightly more IO, but on the other hand leads to more efficient databases,
              and the entire file is already "hot".

          skiplist_unsafe: 0
              If enabled, this option forces the skiplist cyrusdb backend  to  not  sync  writes  to  the  disk.
              Enabling this option is NOT RECOMMENDED.

          smtp_backend: sendmail
              The SMTP backend to use for sending email.

              The  "host"  backend  sends  message  submissions via a TCP socket to the SMTP host defined in the
              config option smtp_host.

              The "sendmail" backend forks the Cyrus process into the executable defined in  the  config  option
              sendmail.   The  executable  must  accept "-bs" as command line argument, read from stdin and must
              implement the minimum SMTP protocol as defined in section 4.5.1 of RFC 5321.

              If the SMTP EHLO command reports AUTH (RFC 4954) as a supported  extension,  then  the  MAIL  FROM
              command  includes  the  AUTH  parameter,  with its value set to the name of any authenticated user
              which triggered the email. The AUTH parameter is omitted if the user is  unknown  to  the  calling
              process.

              If  the  directory  configdirectory/log/smtpclient.smtp_backend  exists,  then  telemetry logs for
              outgoing SMTP sessions will be created in this directory.

              Allowed values: host, sendmail

          smtp_host: localhost:587
              The SMTP host to use for sending mail (also see the smtp_backend option). The value of this option
              must  the name or IP address of a TCP host, followed optionally by a colon and the port or service
              to use. The default port is  587.  TLS  may  be  activated  by  appending  "/tls"  to  the  value.
              Authentication  is enabled if smtp_auth_authname is set. Authentication can be explicitly disabled
              by appending "/noauth" to the host address.

          smtp_auth_authname: <none>
              The authentication name to use when authenticating to the SMTP server defined in smtp_host.

          smtp_auth_password: <none>
              The password to use when authenticating to the SMTP server defined in smtp_host.

          smtp_auth_realm: <none>
              The authentication SASL realm to use when authenticating to a SMTP server.

          soft_noauth: 1
              If enabled, lmtpd returns temporary failures if the client  does  not  successfully  authenticate.
              Otherwise lmtpd returns permanent failures (causing the mail to bounce immediately).

          sortcache_db: twoskip
              The  cyrusdb  backend  to  use  for  caching sort results (currently only used for xconvmultisort)
              Allowed values: skiplist, twoskip, zeroskip

          specialuse_extra: <none>
              Whitespace separated list of extra special-use attributes that can be set on a mailbox.  RFC  6154
              currently  lists  what  special-use  attributes can be set. This allows extending that list in the
              future or adding your own if needed.

          specialuse_nochildren: \Scheduled \Snooze
              Whitespace separated list of special-use attributes that may not contain child folders.   If  set,
              mailboxes  with  any  of these attributes may not have child folders created, and these attributes
              cannot be added to mailboxes that already have children..

          specialuse_protect: \Archive \Drafts \Important \Junk \Sent \Scheduled \Snooze \Trash
              Whitespace separated list of special-use attributes to protect the mailboxes for.  If  set,  don't
              allow  mailboxes  with  these  special use attributes to be deleted or renamed to have a different
              parent. Default is the built-in list

          specialusealways: 1
              If enabled, this option causes LIST and LSUB output to  always  include  the  XLIST  "special-use"
              flags

          sql_database: <none>
              Name of the database which contains the cyrusdb table(s).

          sql_engine: <none>
              Name of the SQL engine to use.

              Allowed values: mysql, pgsql, sqlite

          sql_hostnames: <empty string>
              Comma separated list of SQL servers (in host[:port] format).

          sql_passwd: <none>
              Password to use for authentication to the SQL server.

          sql_user: <none>
              Username to use for authentication to the SQL server.

          sql_usessl: 0
              If enabled, a secure connection will be made to the SQL server.

          srs_alwaysrewrite: 0
              If true, perform SRS rewriting for ALL forwarding, even when not required.

          srs_domain: <none>
              The domain to use in rewritten addresses. This must point only to machines which know the encoding
              secret used by this system. When present, SRS is enabled.

          srs_hashlength: 0
              The hash length to generate in a rewritten address.

          srs_secrets: <none>
              A list of secrets with which to generate addresses.

          srs_separator: <none>
              The separator to appear immediately after SRS[01] in rewritten addresses.

          srvtab: <empty string>
              The pathname of srvtab file containing the server's private key.  This option  is  passed  to  the
              SASL library and overrides its default setting.

          submitservers: <none>
              A  list  of users and groups that are allowed to resolve "urlauth=submit+" IMAP URLs, separated by
              spaces.   Any  user  listed  in  this  will  be  allowed  to  fetch  the  contents  of  any  valid
              "urlauth=submit+" IMAP URL: use with caution.

          subscription_db: flat
              The cyrusdb backend to use for the subscriptions list.

              Allowed values: flat, skiplist, twoskip, zeroskip

          suppress_capabilities: <none>
              Suppress the named capabilities from any capability response.  Use the exact case as it appears in
              the response, e.g.  "suppress_capabilities: ESEARCH QRESYNC WITHIN  XLIST  LIST-EXTENDED"  if  you
              have  a  murder with 2.3.x backends and don't want clients being confused by new capabilities that
              some backends don't support.

          statuscache: 0
              Enable/disable the imap status cache.

          statuscache_db: twoskip
              The cyrusdb backend to use for the imap status cache.

              Allowed values: skiplist, sql, twoskip, zeroskip

          statuscache_db_path: <none>
              The   absolute   path   to   the   statuscache   db   file.    If   not   specified,    will    be
              configdirectory/statuscache.db

          sync_authname: <none>
              The  authentication  name to use when authenticating to a sync server.  Prefix with a channel name
              to only apply for that channel

          sync_batchsize: 8192
              the number of messages to upload in a single mailbox replication.  Default is 8192.  If there  are
              more  than this many messages appended to the mailbox, generate a synthetic partial state and send
              that.

          sync_cache_db: twoskip
              The cyrusdb backend to use for the replication cache.

              Allowed values: skiplist, sql, twoskip, zeroskip

          sync_cache_db_path: <none>
              The path for the replication cache.  Prefix with a channel name to apply for that channel.   NOTE,
              it's quite important to have a different one per backend!

          sync_host: <none>
              Name  of  the  host  (replica running sync_server(8)) to which replication actions will be sent by
              sync_client(8).  Prefix with a channel name to only apply for that channel

          sync_log: 0
              Enable replication action  logging  by  lmtpd(8),  imapd(8),  pop3d(8),  and  nntpd(8).   The  log
              {configdirectory}/sync/log is used by sync_client(8) for "rolling" replication.

          sync_log_chain: 0
              Enable replication action logging by sync_server as well, allowing chaining of replicas.  Use this
              on 'B' for A => B => C replication layout

          sync_log_channels: <none>
              If specified, log all events to multiple log files in directories  specified  by  each  "channel".
              Each  channel  can  then  be  processed  separately, such as by multiple sync_client(8)s in a mesh
              replication scheme, or by squatter(8) for rolling search index updates.

              You can use "" (the two-character string U+22 U+22) to mean the default sync channel.

          sync_log_unsuppressable_channels: squatter
              If specified, the named channels are exempt from the effect of  setting  sync_log_chain:off,  i.e.
              they are always logged to by the sync_server process.  This is only really useful to allow rolling
              search indexing on a replica.

          sync_password: <none>
              The default password to use when authenticating to a sync server.  Prefix with a channel  name  to
              only apply for that channel

          sync_port: <none>
              Name  of  the  service (or port number) of the replication service on replica host.  Prefix with a
              channel name to only apply for that channel.  If not specified, and if  sync_try_imap  is  set  to
              "yes"  (the  default),  then  the  replication client will first try "imap" (port 143) to check if
              imapd supports replication.  Otherwise it will default to "csync" (usually port 2005).

          sync_realm: <none>
              The authentication realm to use when authenticating to a sync server.  Prefix with a channel  name
              to only apply for that channel

          sync_reconnect_maxwait: 20m
              When  a  rolling  sync_client  cannot  connect  to  the  replica,  it  enters a retry loop with an
              exponential backoff between attempts.  This option  sets  the  upper  limit  on  that  exponential
              backoff:  no  matter how long the replica has been down so far, sync_client will never wait longer
              than sync_reconnect_maxwait between retries.

              If this is zero or negative, the backoff duration will be allowed to  increase  indefinitely  (not
              recommended).

              If no unit is specified, seconds is assumed.

          sync_repeat_interval: 1s
              Minimum  interval between replication runs in rolling replication mode. If a replication run takes
              longer than this time, we repeat immediately.  Prefix with a channel name to only apply  for  that
              channel.

              For backward compatibility, if no unit is specified, seconds is assumed.

          sync_rightnow_channel: <none>
              if  set, run sync_client to this channel immediately.  As with channels, set this value to '""' to
              sync the default channel!

          sync_shutdown_file: <none>
              Simple latch used to tell sync_client(8) that it should shut down at the next  opportunity.  Safer
              than  sending  signals  to  running  processes.  Prefix with a channel name to only apply for that
              channel

          sync_timeout: 30m
              How long to wait for a response before returning a timeout failure when talking to  a  replication
              peer (client or server).  The minimum duration is 3 seconds, the default is 30 minutes.

              For backward compatibility, if no unit is specified, seconds is assumed.

          sync_try_imap: 1
              Whether  sync_client  should  try  to perform an IMAP connection before falling back to csync.  If
              this is set to "no", sync_client will only use csync.  Prefix with a channel name  to  apply  only
              for that channel

          syslog_prefix: <none>
              String to be prepended to the process name in syslog entries. Can be further overridden by setting
              the $CYRUS_SYSLOG_PREFIX environment variable.

              Using the $CYRUS_SYSLOG_PREFIX environment variable has the additional advantage that  it  can  be
              set  before  the imapd.conf is read, so errors while reading the config file can be syslogged with
              the correct prefix.

          syslog_facility: <none>
              Configure a syslog facility.  The default is whatever is compiled in.  Allowed values are: DAEMON,
              MAIL, NEWS, USER, and LOCAL0 through to LOCAL7

          tcp_keepalive: 0
              Enable keepalive on TCP connections

          tcp_keepalive_cnt: 0
              Number of TCP keepalive probes to send before declaring the connection dead (0 == system default)

          tcp_keepalive_idle: 0
              How long a connection must be idle before keepalive probes are sent (0 == system default).

              For backward compatibility, if no unit is specified, seconds is assumed.

          tcp_keepalive_intvl: 0
              Time between keepalive probes (0 == system default).

              For backward compatibility, if no unit is specified, seconds is assumed.

          temp_path: /tmp
              The pathname to store temporary files in. It is recommended to use an in-memory filesystem such as
              tmpfs for this path.

          telemetry_bysessionid: 0
              If true, log by sessionid instead of PID for telemetry

          timeout: 32m
              The length of the IMAP server's inactivity autologout timer.  The minimum  value  is  30  minutes.
              The default is 32 minutes, to allow a bit of leeway for clients that try to NOOP every 30 minutes.

              For backward compatibility, if no unit is specified, minutes is assumed.

          imapidletimeout: <none>
              Timeout  for  idling clients (RFC 2177).  If not set (the default), the value of "timeout" will be
              used instead.

              For backward compatibility, if no unit is specified, minutes is assumed.

          tls_ca_file: <none>
              Deprecated in favor of tls_client_ca_file.

          tls_ca_path: <none>
              Deprecated in favor of tls_client_ca_dir.

          tlscache_db: twoskip
              Deprecated in favor of tls_sessions_db.

          tlscache_db_path: <none>
              Deprecated in favor of tls_sessions_db_path.

          tls_cert_file: <none>
              Deprecated in favor of tls_server_cert.

          tls_cipher_list: DEFAULT
              Deprecated in favor of tls_ciphers.

          tls_ciphers: DEFAULT
              The list of SSL/TLS ciphers to allow.  The format of the string (and definition of  "DEFAULT")  is
              described in ciphers(1).

              See also Mozilla's server-side TLS recommendations:

              https://wiki.mozilla.org/Security/Server_Side_TLS

          tls_crl_file: <none>
              Path to a file containing the Certificate Revocation List

          tls_client_ca_dir: <none>
              Path to a directory containing the CA certificates used to verify client SSL certificates used for
              authentication.

          tls_client_ca_file: <none>
              Path to a file containing the CA certificate(s) used to verify client SSL  certificates  used  for
              authentication.

          tls_client_cert: <none>
              File  containing the certificate presented to a server for authentication during STARTTLS. A value
              of "disabled" will disable this server's use of certificate-based authentication.

          tls_client_certs: optional
              Disable ("off"), allow ("optional", default) or require ("require") the use of SSL certificates by
              clients to authenticate themselves.  Allowed values: off, optional, require

          tls_client_key: <none>
              File  containing  the  private  key  belonging  to  the  tls_client_cert  certificate.  A value of
              "disabled" will disable this server's use of certificate-based authentication.

          tls_eccurve: prime256v1
              The elliptic curve used for ECDHE. Default  is  NIST  Suite  B  prime256.   See  'openssl  ecparam
              -list_curves' for possible values.

          tls_key_file: <none>
              Deprecated in favor of tls_server_key.

          tls_required: 0
              If  enabled,  require  a  TLS/SSL  encryption  layer  to be negotiated prior to ANY authentication
              mechanisms being advertised or allowed.

          tls_prefer_server_ciphers: 0
              Prefer the ciphers on the server side instead of client side.

          tls_server_ca_dir: <none>
              Path to a directory with CA certificates used to verify certificates offered by the  server,  when
              cyrus acts as client. This directory must have filenames with the hashed value of the certificates
              (see openssl(1)).

          tls_server_ca_file: <none>
              Path to a file containing CA certificates used to verify certificates offered by the server,  when
              cyrus acts as client.

          tls_server_cert: <none>
              File containing the certificate, including the full chain, presented to clients.  Two certificates
              can be set, e.g RSA and EC, if the filenames are separated with comma without spaces.

          tls_server_dhparam: <none>
              File containing the DH parameters belonging to the certificate in tls_server_cert.

          tls_server_key: <none>
              File containing the private key belonging to the certificate  in  tls_server_cert.   If  not  set,
              tls_server_cert  must contain both private and public key.  Two files with keys can be set, if two
              certificates are used, in which case the files must be separated with comma without spaces

          tls_sessions_db: twoskip
              The cyrusdb backend to use for the TLS cache.

              Allowed values: skiplist, sql, twoskip, zeroskip

          tls_sessions_db_path: <none>
              The   absolute   path   to   the   TLS   sessions   db   file.   If   not   specified,   will   be
              configdirectory/tls_sessions.db

          tls_session_timeout: 24h
              The  length  of  time  that a TLS session will be cached for later reuse.  The maximum value is 24
              hours, also the default.  A value of 0 will disable session caching.

              For backward compatibility, if no unit is specified, minutes is assumed.

          tls_versions: tls1_0 tls1_1 tls1_2 tls1_3
              A list of SSL/TLS versions to not disable. Cyrus IMAP  SSL/TLS  starts  with  all  protocols,  and
              subtracts  protocols  not  in  this  list. Newer versions of SSL/TLS will need to be added here to
              allow them to get disabled.

          uidl_format: cyrus
              Choose the format for UIDLs in pop3.   Possible  values  are  "uidonly",  "cyrus",  "dovecot"  and
              "courier".   "uidonly"  forces  the  old default of UID, "cyrus" is UIDVALIDITY.UID.  Dovecot is 8
              digits of leading hex (lower case) each UID  UIDVALIDITY.  Courier  is  UIDVALIDITY-UID.   Allowed
              values: uidonly, cyrus, dovecot, courier

          umask: 077
              The umask value used by various Cyrus IMAP programs.

          userdeny_db: flat
              The cyrusdb backend to use for the user access list.

              Allowed values: flat, skiplist, sql, twoskip, zeroskip

          userdeny_db_path: <none>
              The absolute path to the userdeny db file.  If not specified, will be configdirectory/user_deny.db

          username_tolower: 1
              Convert   usernames   to   all   lowercase  before  login/authentication.   This  is  useful  with
              authentication backends which ignore case during username lookups (such as LDAP).

          userprefix: Other Users
              If using the alternate IMAP namespace, the prefix for the other users  namespace.   The  hierarchy
              delimiter will be automatically appended.

          unix_group_enable: 1
              Should  we  look  up groups when using auth_unix (disable this if you are not using groups in ACLs
              for your IMAP server, and you are using auth_unix with a backend (such  as  LDAP)  that  can  make
              getgrent() calls very slow)

          unixhierarchysep: 1
              Use  the UNIX separator character '/' for delimiting levels of mailbox hierarchy.  Turn off to use
              the netnews separator character '.'. Note that with the newnews separator, no dots  may  occur  in
              mailbox names.  The default switched in 3.0 from off to on.

          vcard_max_size: 0
              Maximum  allowed  vCard size.  If non-zero, CardDAV and JMAP will reject storage of contacts whose
              vCard representation is larger than vcard_max_size.

              If set to 0 (the default), a large internally-defined limit will be applied.

              If no unit is specified, bytes is assumed.

          virtdomains: off
              Configure virtual domain support.

              off    Cyrus does not know or care about domains. Only the local part of email addresses  is  ever
                     considered.  This is not recommended for any deployment, but is currently the default.

              userid The  user's  domain  is determined by splitting a fully qualified userid at the last '@' or
                     '%' symbol.  If the userid is unqualified, the defaultdomain will be  used.   This  is  the
                     recommended configuration for all deployments.  If you wish to provide calendaring services
                     you must use this configuration.

              on     Fully qualified userids are respected, as per  "userid".   Unqualified  userids  will  have
                     their domain determined by doing a reverse lookup on the IP address of the incoming network
                     interface, or if no record is found, the defaultdomain will be used.

                     Allowed values: off, userid, on

          virusscan_notification_subject: Automatically deleted mail
              The text used in the subject of email notifications  created  by  cyr_virusscan(8)  when  deleting
              infected mail.

          virusscan_notification_template: <none>
              The  absolute  path to a file containing a template to use to describe infected messages that have
              been deleted by cyr_virusscan(8).  See cyr_virusscan(8) for specification of the  format  of  this
              file.  If not specified, the builtin default template will be used.

          websocket_timeout: 30m
              Set  the length of the HTTP server's inactivity autologout timer when a WebSocket channel has been
              established.  The default is 30 minutes.  The minimum value is 0, which will disable WebSockets.

              If no unit is specified, minutes is assumed.

          webdav_attachments_baseurl: <none>
              The base URL for WebDAV managed attachments, excluding the Cyrus-specific  URL  paths.  Typically,
              this  only  includes  the  HTTP  scheme  and  host  name  at  which  DAV clients may fetch managed
              attachments from, e.g.  "https://dav.example.com".  If not specified, the target host of  the  DAV
              HTTP  request  that  uploaded  the  attachment will be used. For JMAP, the Link.blobId property of
              JSCalendar objects will be disabled.

          webdav_attachments_max_binary_attach_size: 1024K
              The maximum byte length of an ATTACH property value when managed attachment URIs get rewritten  to
              BINARY  during  iTIP  processing.   Any  attachment  that exceeds this byte size keeps its managed
              attachment URI as ATTACH value. A zero size limit causes attachments of any size be  rewritten  as
              BINARY.

          xbackup_enabled: 0
              Enable  support for the XBACKUP command in imapd.  If enabled, admin users can use this command to
              provoke a replication of specified users to the named backup channel.

          xlist-flag: <none>
              Set the  special-use  flag  flag  on  the  specified  folder  when  it  is  autocreated  (see  the
              autocreate_inbox_folders option).  For example, if xlist-junk: Spam is set, and the folder Spam is
              autocreated, the special-use flag \Junk will be set on it.

              (This option is so named for backward compatibility with old config files.)

          lmtp_catchall_mailbox: <none>
              Mail sent to mailboxes which do not exist, will be delivered to this user.  NOTE: This must be  an
              existing local user name with an INBOX, NOT an email address!

          zoneinfo_db: twoskip
              The  cyrusdb  backend to use for zoneinfo.  This database is used by the "tzdist" httpmodules, and
              is managed by ctl_zoneinfo(8).  Allowed values: flat, skiplist, twoskip, zeroskip

          zoneinfo_db_path: <none>
              The absolute path to the zoneinfo db file.  If not specified, will be configdirectory/zoneinfo.db

          zoneinfo_dir: <none>
              The absolute path to the zoneinfo directory, containing timezone definitions as generated  by  the
              vzic tool.  If not specified, whatever definitions libical finds will be used.

              If  you  are  providing  a  Time  Zone Data Distribution Service (i.e. you have "tzdist" listed in
              httpmodules), then this configuration option MUST be specified.

          object_storage_enabled: 0
              Is Object storage enabled  for  this  server.   You  also  need  to  have  archiving  enabled  and
              archivepartition  for  the  mailbox.   Only  email  files will be stored on object Storage archive
              partition will be used to store any other files

          object_storage_dummy_spool: <none>
              Dummy object storage spool; this is for test only.  Spool where user directory (container) will be
              created to store all emails in a flat structure

          openio_namespace: <none>
              The  OpenIO  namespace  used to store archived email messages. A namespace identifies the physical
              platform cyrus must contact. This directive is used by the OpenIO's SDK  to  locate  its  platform
              entry point.

          openio_account: <none>
              The OpenIO account used to account for stored emails. Accounts are unique in their namespace. They
              provides virtual partitions, with quotas and QoS features.

          openio_rawx_timeout: 30s
              The OpenIO timeout to query to the RAWX services (default 30 sec).

          openio_proxy_timeout: 5s
              The OpenIO timeout to query to the PROXY services (default 5 sec).

          openio_autocreate: 0
              Allow the OpenIO SDK to autocreate  containers.  Mainly  destined  to  be  turned  on  development
              environments. In production, the container should have been provisioned with the mailboxes.

          openio_verbosity: <none>
              Sets  the  logging  verbosity of the OpenIO's internal behavior. Admissible values are: "warning",
              "notice", "info", "debug", "trace", "quiet".  The default verbosity is "warning". Set to  "notice"
              for  a  few lines on a per-client basis. Set to "info" for a few lines on a per-request basis. Set
              to "debug" Set to "trace" to activate the underlying libcurl debug output.  Enabling  a  verbosity
              higher to equal than "debug" requires the cyrus to be set in debug mode. The special "quiet" value
              disables all kinds of logging at the GLib level.

          caringo_hostname: <none>
              The Caringo hostname used to store archived email messages. A  hostname  identifies  the  physical
              platform  cyrus  must  contact.  This  directive  is used by the Caringo's SDK (CastorSDK: Caringo
              Simple Content Storage Protocol (SCSP) on HTTP 1.1 using a RESTful architecture

          caringo_port: 80
              The port of the caringo server (caringo_hostname); default is 80.

          fastmailsharing: 0
              If enabled, use FastMail style sharing (oldschool full server paths)

SEE ALSO

          imapd(8), pop3d(8), nntpd(8), lmtpd(8),  httpd(8),  timsieved(8),  idled(8),  notifyd(8),  deliver(8),
          master(8), ciphers(1)

AUTHOR

       The Cyrus Team

COPYRIGHT

       1993–2024, The Cyrus Team