Provided by: cyrus-common_3.10.0-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.

          aps_expiry: 1d
              Time  after  which  a  CalDAV/CardDAV push subscription will expire.  A client will
              have  to  refresh  the  subscription  in  order  to  continue   to   receive   push
              notifications.

          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. Starting from Cyrus version 3.8, the "iat" claim
              only is validated if no "exp" claim is present.

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

              Starting from Cyrus 3.8, the "nbf" and "exp" claims always are validated.

          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_calendareventnotifs: 200
              The  maximum  count  of CalendarEventNotification objects to keep per account.  Any
              notifications exceeding this count are expunged to make room for new ones. Zero  or
              any negative number disables this limit.

          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.

          master_pid_file: {configdirectory}/master.pid
              The path to a file that master(8) will write its PID to when running as a daemon.

          master_ready_file: {configdirectory}/master.ready
              The path to a file that master(8) will update to  indicate  that  it  is  ready  to
              accept client connections.  This file will be created if it does not already exist,
              or truncated if it does.

          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_attachment_extractor_request_timeout: 5m
              Defines the duration after which to cancel non-responding requests  to  the  search
              attachment extractor service.

              If no unit is specified, seconds is assumed.

          search_attachment_extractor_idle_timeout: 5m
              Defines  the  duration  after  which  to  close  unused  connections  to the search
              attachment   extractor   service.   If   the   idle   timeout    is    less    than
              search_attachment_extractor_request_timeout, then it is ignored and request timeout
              used instead.

              If no unit is specified, seconds is assumed.

          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 vnd.cyrus.implicit_keep_target
              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, vnd.cyrus.implicit_keep_target

          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 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