{"ok":true,"c":" 'r',\n\/\/ 'cache_index' => 'r',\n\/\/ 'cache_thread' => 'r',\n\/\/ 'cache_messages' => 'r',\n];\n\n\/\/ It is possible to specify database variable values e.g. some limits here.\n\/\/ Use them if your server is not MySQL or for better performance.\n\/\/ For example Roundcube uses max_allowed_packet value (in bytes)\n\/\/ which limits query size for database cache operations.\n$config['db_max_allowed_packet'] = null;\n\n\n\/\/ ----------------------------------\n\/\/ LOGGING\/DEBUGGING\n\/\/ ----------------------------------\n\n\/\/ system error reporting, sum of: 1 = log; 4 = show\n$config['debug_level'] = 1;\n\n\/\/ log driver: 'syslog', 'stdout' or 'file'.\n$config['log_driver'] = 'file';\n\n\/\/ date format for log entries\n\/\/ (read http:\/\/php.net\/manual\/en\/function.date.php for all format characters)\n$config['log_date_format'] = 'd-M-Y H:i:s O';\n\n\/\/ length of the session ID to prepend each log line with\n\/\/ set to 0 to avoid session IDs being logged.\n$config['log_session_id'] = 8;\n\n\/\/ Default extension used for log file name\n$config['log_file_ext'] = '.log';\n\n\/\/ Syslog ident string to use, if using the 'syslog' log driver.\n$config['syslog_id'] = 'roundcube';\n\n\/\/ Syslog facility to use, if using the 'syslog' log driver.\n\/\/ For possible values see installer or http:\/\/php.net\/manual\/en\/function.openlog.php\n$config['syslog_facility'] = LOG_USER;\n\n\/\/ Activate this option if logs should be written to per-user directories.\n\/\/ Data will only be logged if a directory \/\/ exists and is writable.\n$config['per_user_logging'] = false;\n\n\/\/ Log sent messages to \/sendmail.log or to syslog\n$config['smtp_log'] = true;\n\n\/\/ Log successful\/failed logins to \/userlogins.log or to syslog\n$config['log_logins'] = false;\n\n\/\/ Log session debug information\/authentication errors to \/session.log or to syslog\n$config['session_debug'] = false;\n\n\/\/ Log SQL queries to \/sql.log or to syslog\n$config['sql_debug'] = false;\n\n\/\/ Log IMAP conversation to \/imap.log or to syslog\n$config['imap_debug'] = false;\n\n\/\/ Log LDAP conversation to \/ldap.log or to syslog\n$config['ldap_debug'] = false;\n\n\/\/ Log SMTP conversation to \/smtp.log or to syslog\n$config['smtp_debug'] = false;\n\n\/\/ Log Memcache conversation to \/memcache.log or to syslog\n$config['memcache_debug'] = false;\n\n\/\/ Log APC conversation to \/apc.log or to syslog\n$config['apc_debug'] = false;\n\n\/\/ Log Redis conversation to \/redis.log or to syslog\n$config['redis_debug'] = false;\n\n\n\/\/ ----------------------------------\n\/\/ IMAP\n\/\/ ----------------------------------\n\n\/\/ The IMAP host chosen to perform the log-in.\n\/\/ Leave blank to show a textbox at login, give a list of hosts\n\/\/ to display a pulldown menu or set one host as string.\n\/\/ Enter hostname with prefix ssl:\/\/ to use Implicit TLS, or use\n\/\/ prefix tls:\/\/ to use STARTTLS.\n\/\/ Supported replacement variables:\n\/\/ %n - hostname ($_SERVER['SERVER_NAME'])\n\/\/ %t - hostname without the first part\n\/\/ %d - domain (http hostname $_SERVER['HTTP_HOST'] without the first part)\n\/\/ %s - domain name after the '@' from e-mail address provided at login screen\n\/\/ For example %n = mail.domain.tld, %t = domain.tld\n\/\/ WARNING: After hostname change update of mail_host column in users table is\n\/\/ required to match old user data records with the new host.\n$config['default_host'] = 'localhost';\n\n\/\/ TCP port used for IMAP connections\n$config['default_port'] = 143;\n\n\/\/ IMAP authentication method (DIGEST-MD5, CRAM-MD5, LOGIN, PLAIN or null).\n\/\/ Use 'IMAP' to authenticate with IMAP LOGIN command.\n\/\/ By default the most secure method (from supported) will be selected.\n$config['imap_auth_type'] = null;\n\n\/\/ IMAP socket context options\n\/\/ See http:\/\/php.net\/manual\/en\/context.ssl.php\n\/\/ The example below enables server certificate validation\n\/\/$config['imap_conn_options'] = [\n\/\/ 'ssl' => [\n\/\/ 'verify_peer' => true,\n\/\/ 'verify_depth' => 3,\n\/\/ 'cafile' => '\/etc\/openssl\/certs\/ca.crt',\n\/\/ ],\n\/\/ ];\n\/\/ Note: These can be also specified as an array of options indexed by hostname\n$config['imap_conn_options'] = null;\n\n\/\/ IMAP connection timeout, in seconds. Default: 0 (use default_socket_timeout)\n$config['imap_timeout'] = 0;\n\n\/\/ Optional IMAP authentication identifier to be used as authorization proxy\n$config['imap_auth_cid'] = null;\n\n\/\/ Optional IMAP authentication password to be used for imap_auth_cid\n$config['imap_auth_pw'] = null;\n\n\/\/ If you know your imap's folder delimiter, you can specify it here.\n\/\/ Otherwise it will be determined automatically\n$config['imap_delimiter'] = null;\n\n\/\/ If you know your imap's folder vendor, you can specify it here.\n\/\/ Otherwise it will be determined automatically. Use lower-case\n\/\/ identifiers, e.g. 'dovecot', 'cyrus', 'gimap', 'hmail', 'uw-imap'.\n$config['imap_vendor'] = null;\n\n\/\/ If IMAP server doesn't support NAMESPACE extension, but you're\n\/\/ using shared folders or personal root folder is non-empty, you'll need to\n\/\/ set these options. All can be strings or arrays of strings.\n\/\/ Note: Folders need to be ended with directory separator, e.g. \"INBOX.\"\n\/\/ (special directory \"~\" is an exception to this rule)\n\/\/ Note: These can be used also to overwrite server's namespaces\n\/\/ Note: Set these to FALSE to disable access to specified namespace\n$config['imap_ns_personal'] = null;\n$config['imap_ns_other'] = null;\n$config['imap_ns_shared'] = null;\n\n\/\/ By default IMAP capabilities are read after connection to IMAP server\n\/\/ In some cases, e.g. when using IMAP proxy, there's a need to refresh the list\n\/\/ after login. Set to True if you've got this case.\n$config['imap_force_caps'] = false;\n\n\/\/ By default list of subscribed folders is determined using LIST-EXTENDED\n\/\/ extension if available. Some servers (dovecot 1.x) returns wrong results\n\/\/ for shared namespaces in this case. https:\/\/github.com\/roundcube\/roundcubemail\/issues\/2474\n\/\/ Enable this option to force LSUB command usage instead.\n\/\/ Deprecated: Use imap_disabled_caps = ['LIST-EXTENDED']\n$config['imap_force_lsub'] = false;\n\n\/\/ Some server configurations (e.g. Courier) doesn't list folders in all namespaces\n\/\/ Enable this option to force listing of folders in all namespaces\n$config['imap_force_ns'] = false;\n\n\/\/ Some servers return hidden folders (name starting with a dot)\n\/\/ from user home directory. IMAP RFC does not forbid that.\n\/\/ Enable this option to hide them and disable possibility to create such.\n$config['imap_skip_hidden_folders'] = false;\n\n\/\/ Some servers do not support folders with both folders and messages inside\n\/\/ If your server supports that use true, if it does not, use false.\n\/\/ By default it will be determined automatically (once per user session).\n$config['imap_dual_use_folders'] = null;\n\n\/\/ List of disabled imap extensions.\n\/\/ Use if your IMAP server has broken implementation of some feature\n\/\/ and you can't remove it from CAPABILITY string on server-side.\n\/\/ For example UW-IMAP server has broken ESEARCH.\n\/\/ Note: Because the list is cached, re-login is required after change.\n$config['imap_disabled_caps'] = [];\n\n\/\/ Log IMAP session identifiers after each IMAP login.\n\/\/ This is used to relate IMAP session with Roundcube user sessions\n$config['imap_log_session'] = false;\n\n\/\/ Type of IMAP indexes cache. Supported values: 'db', 'apc' and 'memcache' or 'memcached'.\n$config['imap_cache'] = null;\n\n\/\/ Enables messages cache. Only 'db' cache is supported.\n\/\/ This requires an IMAP server that supports QRESYNC and CONDSTORE\n\/\/ extensions (RFC7162). See synchronize() in program\/lib\/Roundcube\/rcube_imap_cache.php\n\/\/ for further info, or if you experience syncing problems.\n$config['messages_cache'] = false;\n\n\/\/ Lifetime of IMAP indexes cache. Possible units: s, m, h, d, w\n$config['imap_cache_ttl'] = '10d';\n\n\/\/ Lifetime of messages cache. Possible units: s, m, h, d, w\n$config['messages_cache_ttl'] = '10d';\n\n\/\/ Maximum cached message size in kilobytes.\n\/\/ Note: On MySQL this should be less than (max_allowed_packet - 30%)\n$config['messages_cache_threshold'] = 50;\n\n\n\/\/ ----------------------------------\n\/\/ SMTP\n\/\/ ----------------------------------\n\n\/\/ SMTP server host (for sending mails).\n\/\/ Enter hostname with prefix ssl:\/\/ to use Implicit TLS, or use\n\/\/ prefix tls:\/\/ to use STARTTLS.\n\/\/ Supported replacement variables:\n\/\/ %h - user's IMAP hostname\n\/\/ %n - hostname ($_SERVER['SERVER_NAME'])\n\/\/ %t - hostname without the first part\n\/\/ %d - domain (http hostname $_SERVER['HTTP_HOST'] without the first part)\n\/\/ %z - IMAP domain (IMAP hostname without the first part)\n\/\/ For example %n = mail.domain.tld, %t = domain.tld\n\/\/ To specify different SMTP servers for different IMAP hosts provide an array\n\/\/ of IMAP host (no prefix or port) and SMTP server e.g. ['imap.example.com' => 'smtp.example.net']\n$config['smtp_server'] = '__smtp_server__';\n\n\/\/ SMTP port. Use 25 for cleartext, 465 for Implicit TLS, or 587 for STARTTLS (default)\n$config['smtp_port'] = 587;\n\n\/\/ SMTP username (if required) if you use %u as the username Roundcube\n\/\/ will use the current username for login\n$config['smtp_user'] = '__smtp_user__';\n\n\/\/ SMTP password (if required) if you use %p as the password Roundcube\n\/\/ will use the current user's password for login\n$config['smtp_pass'] = '__smtp_pass__';\n\n\/\/ SMTP AUTH type (DIGEST-MD5, CRAM-MD5, LOGIN, PLAIN or empty to use\n\/\/ best server supported one)\n$config['smtp_auth_type'] = '__smtp_auth_type__';\n\n\/\/ Optional SMTP authentication identifier to be used as authorization proxy\n$config['smtp_auth_cid'] = null;\n\n\/\/ Optional SMTP authentication password to be used for smtp_auth_cid\n$config['smtp_auth_pw'] = null;\n\n\/\/ Pass the username (XCLIENT LOGIN) to the server\n$config['smtp_xclient_login'] = false;\n\n\/\/ Pass the remote IP (XCLIENT ADDR) to the server\n$config['smtp_xclient_addr'] = false;\n\n\n\/\/ SMTP HELO host\n\/\/ Hostname to give to the remote server for SMTP 'HELO' or 'EHLO' messages\n\/\/ Leave this blank and you will get the server variable 'server_name' or\n\/\/ localhost if that isn't defined.\n$config['smtp_helo_host'] = gethostname();\n\n\/\/ SMTP connection timeout, in seconds. Default: 0 (use default_socket_timeout)\n\/\/ Note: There's a known issue where using ssl connection with\n\/\/ timeout > 0 causes connection errors (https:\/\/bugs.php.net\/bug.php?id=54511)\n$config['smtp_timeout'] = 0;\n\n\/\/ SMTP socket context options\n\/\/ See http:\/\/php.net\/manual\/en\/context.ssl.php\n\/\/ The example below enables server certificate validation, and\n\/\/ requires 'smtp_timeout' to be non zero.\n\/\/ $config['smtp_conn_options'] = [\n\/\/ 'ssl' => [\n\/\/ 'verify_peer' => true,\n\/\/ 'verify_depth' => 3,\n\/\/ 'cafile' => '\/etc\/openssl\/certs\/ca.crt',\n\/\/ ],\n\/\/ ];\n\/\/ Note: These can be also specified as an array of options indexed by hostname\n$config['smtp_conn_options'] = null;\n\n\n\/\/ ----------------------------------\n\/\/ OAuth\n\/\/ ----------------------------------\n\n\/\/ Enable OAuth2 by defining a provider. Use 'generic' here\n$config['oauth_provider'] = null;\n\n\/\/ Provider name to be displayed on the login button\n$config['oauth_provider_name'] = 'Google';\n\n\/\/ Mandatory: OAuth client ID for your Roundcube installation\n$config['oauth_client_id'] = null;\n\n\/\/ Mandatory: OAuth client secret\n$config['oauth_client_secret'] = null;\n\n\/\/ Mandatory: URI for OAuth user authentication (redirect)\n$config['oauth_auth_uri'] = null;\n\n\/\/ Mandatory: Endpoint for OAuth authentication requests (server-to-server)\n$config['oauth_token_uri'] = null;\n\n\/\/ Optional: Endpoint to query user identity if not provided in auth response\n$config['oauth_identity_uri'] = null;\n\n\/\/ Optional: disable SSL certificate check on HTTP requests to OAuth server\n\/\/ See http:\/\/docs.guzzlephp.org\/en\/stable\/request-options.html#verify for possible values\n$config['oauth_verify_peer'] = true;\n\n\/\/ Mandatory: OAuth scopes to request (space-separated string)\n$config['oauth_scope'] = null;\n\n\/\/ Optional: additional query parameters to send with login request (hash array)\n$config['oauth_auth_parameters'] = [];\n\n\/\/ Optional: array of field names used to resolve the username within the identity information\n$config['oauth_identity_fields'] = null;\n\n\/\/ Boolean: automatically redirect to OAuth login when opening Roundcube without a valid session\n$config['oauth_login_redirect'] = false;\n\n\/\/\/\/\/ Example config for Gmail\n\n\/\/ Register your service at https:\/\/console.developers.google.com\/\n\/\/ - use https:\/\/\/index.php\/login\/oauth as redirect URL\n\n\/\/ $config['imap_host'] = 'ssl:\/\/imap.gmail.com';\n\/\/ $config['oauth_provider'] = 'google';\n\/\/ $config['oauth_provider_name'] = 'Google';\n\/\/ $config['oauth_client_id'] = \"\";\n\/\/ $config['oauth_client_secret'] = \"\";\n\/\/ $config['oauth_auth_uri'] = \"https:\/\/accounts.google.com\/o\/oauth2\/auth\";\n\/\/ $config['oauth_token_uri'] = \"https:\/\/oauth2.googleapis.com\/token\";\n\/\/ $config['oauth_identity_uri'] = 'https:\/\/www.googleapis.com\/oauth2\/v1\/userinfo';\n\/\/ $config['oauth_scope'] = \"email profile openid https:\/\/mail.google.com\/\";\n\/\/ $config['oauth_auth_parameters'] = ['access_type' => 'offline', 'prompt' => 'consent'];\n\n\/\/\/\/\/ Example config for Outlook.com (Office 365)\n\n\/\/ Register your OAuth client at https:\/\/portal.azure.com\n\/\/ - use https:\/\/\/index.php\/login\/oauth as redirect URL\n\/\/ - grant permissions to Microsoft Graph API \"IMAP.AccessAsUser.All\", \"SMTP.Send\", \"User.Read\" and \"offline_access\"\n\n\/\/ $config['default_host'] = 'ssl:\/\/outlook.office365.com';\n\/\/ $config['smtp_server'] = 'ssl:\/\/smtp.office365.com';\n\n\/\/ $config['oauth_provider'] = 'outlook';\n\/\/ $config['oauth_provider_name'] = 'Outlook.com';\n\/\/ $config['oauth_client_id'] = \"\";\n\/\/ $config['oauth_client_secret'] = \"\";\n\/\/ $config['oauth_auth_uri'] = \"https:\/\/login.microsoftonline.com\/common\/oauth2\/v2.0\/authorize\";\n\/\/ $config['oauth_token_uri'] = \"https:\/\/login.microsoftonline.com\/common\/oauth2\/v2.0\/token\";\n\/\/ $config['oauth_identity_uri'] = \"https:\/\/graph.microsoft.com\/v1.0\/me\";\n\/\/ $config['oauth_identity_fields'] = ['email', 'userPrincipalName'];\n\/\/ $config['oauth_scope'] = \"https:\/\/outlook.office365.com\/IMAP.AccessAsUser.All https:\/\/outlook.office365.com\/SMTP.Send User.Read offline_access\";\n\/\/ $config['oauth_auth_parameters'] = ['nonce' => mt_rand()];\n\n\/\/ ----------------------------------\n\/\/ LDAP\n\/\/ ----------------------------------\n\n\/\/ Type of LDAP cache. Supported values: 'db', 'apc' and 'memcache' or 'memcached'.\n$config['ldap_cache'] = 'db';\n\n\/\/ Lifetime of LDAP cache. Possible units: s, m, h, d, w\n$config['ldap_cache_ttl'] = '10m';\n\n\n\/\/ ----------------------------------\n\/\/ CACHE(S)\n\/\/ ----------------------------------\n\n\/\/ Use these hosts for accessing memcached\n\/\/ Define any number of hosts in the form of hostname:port or unix:\/\/\/path\/to\/socket.file\n\/\/ Example: ['localhost:11211', '192.168.1.12:11211', 'unix:\/\/\/var\/tmp\/memcached.sock'];\n$config['memcache_hosts'] = null;\n\n\/\/ Controls the use of a persistent connections to memcache servers\n\/\/ See http:\/\/php.net\/manual\/en\/memcache.addserver.php\n$config['memcache_pconnect'] = true;\n\n\/\/ Value in seconds which will be used for connecting to the daemon\n\/\/ See http:\/\/php.net\/manual\/en\/memcache.addserver.php\n$config['memcache_timeout'] = 1;\n\n\/\/ Controls how often a failed server will be retried (value in seconds).\n\/\/ Setting this parameter to -1 disables automatic retry.\n\/\/ See http:\/\/php.net\/manual\/en\/memcache.addserver.php\n$config['memcache_retry_interval'] = 15;\n\n\/\/ Use these hosts for accessing Redis.\n\/\/ Currently only one host is supported. Cluster support may come in a future release.\n\/\/ You can pass 4 fields, host, port (optional), database (optional) and password (optional).\n\/\/ Unset fields will be set to the default values host=127.0.0.1, port=6379.\n\/\/ Examples:\n\/\/ ['localhost:6379'];\n\/\/ ['192.168.1.1:6379:1:secret'];\n\/\/ ['unix:\/\/\/var\/run\/redis\/redis-server.sock:1:secret'];\n$config['redis_hosts'] = null;\n\n\/\/ Maximum size of an object in memcache (in bytes). Default: 2MB\n$config['memcache_max_allowed_packet'] = '2M';\n\n\/\/ Maximum size of an object in APC cache (in bytes). Default: 2MB\n$config['apc_max_allowed_packet'] = '2M';\n\n\/\/ Maximum size of an object in Redis cache (in bytes). Default: 2MB\n$config['redis_max_allowed_packet'] = '2M';\n\n\n\/\/ ----------------------------------\n\/\/ SYSTEM\n\/\/ ----------------------------------\n\n\/\/ THIS OPTION WILL ALLOW THE INSTALLER TO RUN AND CAN EXPOSE SENSITIVE CONFIG DATA.\n\/\/ ONLY ENABLE IT IF YOU'RE REALLY SURE WHAT YOU'RE DOING!\n$config['enable_installer'] = false;\n\n\/\/ don't allow these settings to be overridden by the user\n$config['dont_override'] = [];\n\n\/\/ List of disabled UI elements\/actions\n$config['disabled_actions'] = [];\n\n\/\/ define which settings should be listed under the 'advanced' block\n\/\/ which is hidden by default\n$config['advanced_prefs'] = [];\n\n\/\/ provide an URL where a user can get support for this Roundcube installation\n\/\/ PLEASE DO NOT LINK TO THE ROUNDCUBE.NET WEBSITE HERE!\n$config['support_url'] = '';\n\n\/\/ Location of the blank (watermark) frame page. By default it is the watermark.html\n\/\/ file from the currently selected skin. Prepend name\/path with a slash to use\n\/\/ current skin folder. Remove the slash to point to a file in the Roundcube\n\/\/ root directory. It can be also a full URL.\n$config['blankpage_url'] = '\/watermark.html';\n\n\/\/ Logo image replacement. Specifies location of the image as:\n\/\/ - URL relative to the document root of this Roundcube installation\n\/\/ - full URL with http:\/\/ or https:\/\/ prefix\n\/\/ - URL relative to the current skin folder (when starts with a '\/')\n\/\/\n\/\/ An array can be used to specify different logos for specific template files\n\/\/ The array key specifies the place(s) the logo should be applied to and\n\/\/ is made up of (up to) 3 parts:\n\/\/ - skin name prefix (always with colon, can be replaced with *)\n\/\/ - template name (or * for all templates)\n\/\/ - logo type - it is used for logos used on multiple templates\n\/\/ the available types include '[favicon]' for favicon, '[print]' for logo on all print\n\/\/ templates (e.g. messageprint, contactprint) and '[small]' for small screen logo in supported skins\n\/\/ '[dark]' and '[small-dark]' for dark mode logo in supported skins\n\/\/\n\/\/ Example config for skin_logo\n\/*\n [\n \/\/ show the image \/images\/logo_login_small.png for the Login screen in the Elastic skin on small screens\n \"elastic:login[small]\" => \"\/images\/logo_login_small.png\",\n \/\/ show the image \/images\/logo_login.png for the Login screen in the Elastic skin\n \"elastic:login\" => \"\/images\/logo_login.png\",\n \/\/ show the image \/images\/logo_small.png in the Elastic skin\n \"elastic:*[small]\" => \"\/images\/logo_small.png\",\n \/\/ show the image \/images\/larry.png in the Larry skin\n \"larry:*\" => \"\/images\/larry.png\",\n \/\/ show the image \/images\/logo_login.png on the login template in all skins\n \"login\" => \"\/images\/logo_login.png\",\n \/\/ show the image \/images\/logo_print.png for all print type logos in all skins\n \"[print]\" => \"\/images\/logo_print.png\",\n ];\n*\/\n$config['skin_logo'] = null;\n\n\/\/ Automatically register user in Roundcube database on successful (IMAP) logon.\n\/\/ Set to false if only registered users should be allowed to the webmail.\n\/\/ Note: If disabled you have to create records in Roundcube users table by yourself.\n\/\/ Note: Roundcube does not manage\/create users on a mail server.\n$config['auto_create_user'] = true;\n\n\/\/ Enables possibility to log in using email address from user identities\n$config['user_aliases'] = false;\n\n\/\/ use this folder to store log files\n\/\/ must be writeable for the user who runs PHP process (Apache user if mod_php is being used)\n\/\/ This is used by the 'file' log driver.\n$config['log_dir'] = '__log_dir__';\n\n\/\/ Location of temporary saved files such as attachments and cache files\n\/\/ must be writeable for the user who runs PHP process (Apache user if mod_php is being used)\n$config['temp_dir'] = '__temp_dir__';\n\n\/\/ expire files in temp_dir after 48 hours\n\/\/ possible units: s, m, h, d, w\n$config['temp_dir_ttl'] = '48h';\n\n\/\/ Enforce connections over https\n\/\/ With this option enabled, all non-secure connections will be redirected.\n\/\/ It can be also a port number, hostname or hostname:port if they are\n\/\/ different than default HTTP_HOST:443\n$config['force_https'] = false;\n\n\/\/ tell PHP that it should work as under secure connection\n\/\/ even if it doesn't recognize it as secure ($_SERVER['HTTPS'] is not set)\n\/\/ e.g. when you're running Roundcube behind a https proxy\n\/\/ this option is mutually exclusive to 'force_https' and only either one of them should be set to true.\n$config['use_https'] = false;\n\n\/\/ Allow browser-autocompletion on login form.\n\/\/ 0 - disabled, 1 - username and host only, 2 - username, host, password\n$config['login_autocomplete'] = 0;\n\n\/\/ Forces conversion of logins to lower case.\n\/\/ 0 - disabled, 1 - only domain part, 2 - domain and local part.\n\/\/ If users authentication is case-insensitive this must be enabled.\n\/\/ Note: After enabling it all user records need to be updated, e.g. with query:\n\/\/ UPDATE users SET username = LOWER(username);\n$config['login_lc'] = 2;\n\n\/\/ Maximum length (in bytes) of logon username and password.\n$config['login_username_maxlen'] = 1024;\n$config['login_password_maxlen'] = 1024;\n\n\/\/ Logon username filter. Regular expression for use with preg_match().\n\/\/ Use special value 'email' if you accept only full email addresses as user logins.\n\/\/ Example: '\/^[a-z0-9_@.-]+$\/'\n$config['login_username_filter'] = null;\n\n\/\/ Brute-force attacks prevention.\n\/\/ The value specifies maximum number of failed logon attempts per minute.\n$config['login_rate_limit'] = 3;\n\n\/\/ Includes should be interpreted as PHP files\n$config['skin_include_php'] = false;\n\n\/\/ display product name and software version on login screen\n\/\/ 0 - hide product name and version number, 1 - show product name only, 2 - show product name and version number\n$config['display_product_info'] = 0;\n\n\/\/ Session lifetime in minutes\n$config['session_lifetime'] = 10;\n\n\/\/ Session domain: .example.org\n$config['session_domain'] = '';\n\n\/\/ Session name. Default: 'roundcube_sessid'\n$config['session_name'] = null;\n\n\/\/ Session authentication cookie name. Default: 'roundcube_sessauth'\n$config['session_auth_name'] = null;\n\n\/\/ Session path. Defaults to PHP session.cookie_path setting.\n$config['session_path'] = null;\n\n\/\/ Session samesite. Defaults to PHP session.cookie_samesite setting.\n\/\/ Requires PHP >= 7.3.0, see https:\/\/wiki.php.net\/rfc\/same-site-cookie for more info\n\/\/ Possible values: null (default), 'Lax', or 'Strict'\n$config['session_samesite'] = null;\n\n\/\/ Backend to use for session storage. Can either be 'db' (default), 'redis', 'memcache', or 'php'\n\/\/\n\/\/ If set to 'memcache' or 'memcached', a list of servers need to be specified in 'memcache_hosts'\n\/\/ Make sure the Memcache extension (https:\/\/pecl.php.net\/package\/memcache) version >= 2.0.0\n\/\/ or the Memcached extension (https:\/\/pecl.php.net\/package\/memcached) version >= 2.0.0 is installed.\n\/\/\n\/\/ If set to 'redis', a server needs to be specified in 'redis_hosts'\n\/\/ Make sure the Redis extension (https:\/\/pecl.php.net\/package\/redis) version >= 2.0.0 is installed.\n\/\/\n\/\/ Setting this value to 'php' will use the default session save handler configured in PHP\n$config['session_storage'] = 'db';\n\n\/\/ List of trusted proxies\n\/\/ X_FORWARDED_* and X_REAL_IP headers are only accepted from these IPs\n$config['proxy_whitelist'] = [];\n\n\/\/ List of trusted host names\n\/\/ Attackers can modify Host header of the HTTP request causing $_SERVER['SERVER_NAME']\n\/\/ or $_SERVER['HTTP_HOST'] variables pointing to a different host, that could be used\n\/\/ to collect user names and passwords. Some server configurations prevent that, but not all.\n\/\/ An empty list accepts any host name. The list can contain host names\n\/\/ or PCRE patterns (without \/\/ delimiters, that will be added automatically).\n$config['trusted_host_patterns'] = [];\n\n\/\/ check client IP in session authorization\n$config['ip_check'] = false;\n\n\/\/ X-Frame-Options HTTP header value sent to prevent from Clickjacking.\n\/\/ Possible values: sameorigin|deny|allow-from .\n\/\/ Set to false in order to disable sending the header.\n$config['x_frame_options'] = 'sameorigin';\n\n\/\/ This key is used for encrypting purposes, like storing of imap password\n\/\/ in the session. For historical reasons it's called DES_key, but it's used\n\/\/ with any configured cipher_method (see below).\n\/\/ For the default cipher_method a required key length is 24 characters.\n\/\/ $config['des_key'] = 'rcmail-!24ByteDESkey*Str';\n$config['des_key'] = 'ccmail-!24ByteDESkey*Str';\n\n\/\/ Encryption algorithm. You can use any method supported by OpenSSL.\n\/\/ Default is set for backward compatibility to DES-EDE3-CBC,\n\/\/ but you can choose e.g. AES-256-CBC which we consider a better choice.\n$config['cipher_method'] = 'DES-EDE3-CBC';\n\n\/\/ Automatically add this domain to user names for login\n\/\/ Only for IMAP servers that require full e-mail addresses for login\n\/\/ Specify an array with 'host' => 'domain' values to support multiple hosts\n\/\/ Supported replacement variables:\n\/\/ %h - user's IMAP hostname\n\/\/ %n - hostname ($_SERVER['SERVER_NAME'])\n\/\/ %t - hostname without the first part\n\/\/ %d - domain (http hostname $_SERVER['HTTP_HOST'] without the first part)\n\/\/ %z - IMAP domain (IMAP hostname without the first part)\n\/\/ For example %n = mail.domain.tld, %t = domain.tld\n$config['username_domain'] = '';\n\n\/\/ Force domain configured in username_domain to be used for login.\n\/\/ Any domain in username will be replaced by username_domain.\n$config['username_domain_forced'] = false;\n\n\/\/ This domain will be used to form e-mail addresses of new users\n\/\/ Specify an array with 'host' => 'domain' values to support multiple hosts\n\/\/ Supported replacement variables:\n\/\/ %h - user's IMAP hostname\n\/\/ %n - http hostname ($_SERVER['SERVER_NAME'])\n\/\/ %d - domain (http hostname without the first part)\n\/\/ %z - IMAP domain (IMAP hostname without the first part)\n\/\/ For example %n = mail.domain.tld, %t = domain.tld\n$config['mail_domain'] = $_SERVER['DNS'];\n\n\/\/ Password character set, to change the password for user\n\/\/ authentication or for password change operations\n$config['password_charset'] = 'ISO-8859-1';\n\n\/\/ How many seconds must pass between emails sent by a user\n$config['sendmail_delay'] = 0;\n\n\/\/ Message size limit. Note that SMTP server(s) may use a different value.\n\/\/ This limit is verified when user attaches files to a composed message.\n\/\/ Size in bytes (possible unit suffix: K, M, G)\n$config['max_message_size'] = '100M';\n\n\/\/ Maximum number of recipients per message (including To, Cc, Bcc).\n\/\/ Default: 0 (no limit)\n$config['max_recipients'] = 0;\n\n\/\/ Maximum number of recipients per message excluding Bcc header.\n\/\/ This is a soft limit, which means we only display a warning to the user.\n\/\/ Default: 5\n$config['max_disclosed_recipients'] = 5;\n\n\/\/ Maximum allowed number of members of an address group. Default: 0 (no limit)\n\/\/ If 'max_recipients' is set this value should be less or equal\n$config['max_group_members'] = 0;\n\n\/\/ Name your service. This is displayed on the login screen and in the window title\n$config['product_name'] = 'Roundcube Webmail';\n\n\/\/ Add this user-agent to message headers when sending. Default: not set.\n$config['useragent'] = 'Roundcube Webmail\/'.RCMAIL_VERSION;\n\n\/\/ try to load host-specific configuration\n\/\/ see https:\/\/github.com\/roundcube\/roundcubemail\/wiki\/Configuration:-Multi-Domain-Setup\n\/\/ for more details\n$config['include_host_config'] = false;\n\n\/\/ path to a text file which will be added to each sent message\n\/\/ paths are relative to the Roundcube root folder\n$config['generic_message_footer'] = '';\n\n\/\/ path to a text file which will be added to each sent HTML message\n\/\/ paths are relative to the Roundcube root folder\n$config['generic_message_footer_html'] = '';\n\n\/\/ add a received header to outgoing mails containing the creators IP and hostname\n$config['http_received_header'] = false;\n\n\/\/ Whether or not to encrypt the IP address and the host name\n\/\/ these could, in some circles, be considered as sensitive information;\n\/\/ however, for the administrator, these could be invaluable help\n\/\/ when tracking down issues.\n$config['http_received_header_encrypt'] = false;\n\n\/\/ number of chars allowed for line when wrapping text.\n\/\/ text wrapping is done when composing\/sending messages\n$config['line_length'] = 72;\n\n\/\/ send plaintext messages as format=flowed\n$config['send_format_flowed'] = true;\n\n\/\/ According to RFC2298, return receipt envelope sender address must be empty.\n\/\/ If this option is true, Roundcube will use user's identity as envelope sender for MDN responses.\n$config['mdn_use_from'] = false;\n\n\/\/ Set identities access level:\n\/\/ 0 - many identities with possibility to edit all params\n\/\/ 1 - many identities with possibility to edit all params but not email address\n\/\/ 2 - one identity with possibility to edit all params\n\/\/ 3 - one identity with possibility to edit all params but not email address\n\/\/ 4 - one identity with possibility to edit only signature\n$config['identities_level'] = 0;\n\n\/\/ Maximum size of uploaded image in kilobytes\n\/\/ Images (in html signatures) are stored in database as data URIs\n$config['identity_image_size'] = 64;\n\n\/\/ Mimetypes supported by the browser.\n\/\/ Attachments of these types will open in a preview window.\n\/\/ Either a comma-separated list or an array. Default list includes:\n\/\/ text\/plain,text\/html,\n\/\/ image\/jpeg,image\/gif,image\/png,image\/bmp,image\/tiff,image\/webp,\n\/\/ application\/x-javascript,application\/pdf,application\/x-shockwave-flash\n$config['client_mimetypes'] = null;\n\n\/\/ Path to a local mime magic database file for PHPs finfo extension.\n\/\/ Set to null if the default path should be used.\n$config['mime_magic'] = null;\n\n\/\/ Absolute path to a local mime.types mapping table file.\n\/\/ This is used to derive mime-types from the filename extension or vice versa.\n\/\/ Such a file is usually part of the apache webserver. If you don't find a file named mime.types on your system,\n\/\/ download it from http:\/\/svn.apache.org\/repos\/asf\/httpd\/httpd\/trunk\/docs\/conf\/mime.types\n$config['mime_types'] = null;\n\n\/\/ path to imagemagick identify binary (if not set we'll use Imagick or GD extensions)\n$config['im_identify_path'] = null;\n\n\/\/ path to imagemagick convert binary (if not set we'll use Imagick or GD extensions)\n$config['im_convert_path'] = null;\n\n\/\/ Size of thumbnails from image attachments displayed below the message content.\n\/\/ Note: whether images are displayed at all depends on the 'inline_images' option.\n\/\/ Set to 0 to display images in full size.\n$config['image_thumbnail_size'] = 240;\n\n\/\/ maximum size of uploaded contact photos in pixel\n$config['contact_photo_size'] = 160;\n\n\/\/ Enable DNS checking for e-mail address validation\n$config['email_dns_check'] = false;\n\n\/\/ Disables saving sent messages in Sent folder (like gmail) (Default: false)\n\/\/ Note: useful when SMTP server stores sent mail in user mailbox\n$config['no_save_sent_messages'] = false;\n\n\/\/ Improve system security by using special URL with security token.\n\/\/ This can be set to a number defining token length. Default: 16.\n\/\/ Warning: This requires http server configuration. Sample:\n\/\/ RewriteRule ^\/roundcubemail\/[a-zA-Z0-9]{16}\/(.*) \/roundcubemail\/$1 [PT]\n\/\/ Alias \/roundcubemail \/var\/www\/roundcubemail\/\n\/\/ Note: Use assets_path to not prevent the browser from caching assets\n$config['use_secure_urls'] = false;\n\n\/\/ Allows to define separate server\/path for image\/js\/css files\n\/\/ Warning: If the domain is different cross-domain access to some\n\/\/ resources need to be allowed\n\/\/ Sample:\n\/\/ \n\/\/ Header set Access-Control-Allow-Origin \"*\"\n\/\/ <\/FilesMatch>\n$config['assets_path'] = '';\n\n\/\/ While assets_path is for the browser, assets_dir informs\n\/\/ PHP code about the location of asset files in filesystem\n$config['assets_dir'] = '';\n\n\/\/ Options passed when creating Guzzle HTTP client, used to fetch remote content\n\/\/ For example:\n\/\/ [\n\/\/ 'timeout' => 10,\n\/\/ 'proxy' => 'tcp:\/\/localhost:8125',\n\/\/ ]\n$config['http_client'] = [];\n\n\/\/ List of supported subject prefixes for a message reply\n\/\/ This list is used to clean the subject when replying or sorting messages\n$config['subject_reply_prefixes'] = ['Re:'];\n\n\/\/ List of supported subject prefixes for a message forward\n\/\/ This list is used to clean the subject when forwarding or sorting messages\n$config['subject_forward_prefixes'] = ['Fwd:', 'Fw:'];\n\n\/\/ Prefix to use in subject when replying to a message\n$config['response_prefix'] = 'Re:';\n\n\/\/ Prefix to use in subject when forwarding a message\n$config['forward_prefix'] = 'Fwd:';\n\n\/\/ ----------------------------------\n\/\/ PLUGINS\n\/\/ ----------------------------------\n\n\/\/ List of active plugins (in plugins\/ directory)\n$config['plugins'] = ['cpanellogin','cpanellogout','archive','calendar','return_to_webmail','markasjunk'];\n\n\/\/ ----------------------------------\n\/\/ USER INTERFACE\n\/\/ ----------------------------------\n\n\/\/ default messages sort column. Use empty value for default server's sorting,\n\/\/ or 'arrival', 'date', 'subject', 'from', 'to', 'fromto', 'size', 'cc'\n$config['message_sort_col'] = '';\n\n\/\/ default messages sort order\n$config['message_sort_order'] = 'DESC';\n\n\/\/ These cols are shown in the message list. Available cols are:\n\/\/ subject, from, to, fromto, cc, replyto, date, size, status, flag, attachment, priority\n$config['list_cols'] = ['subject', 'status', 'fromto', 'date', 'size', 'flag', 'attachment'];\n\n\/\/ the default locale setting (leave empty for auto-detection)\n\/\/ RFC1766 formatted language name like en_US, de_DE, de_CH, fr_FR, pt_BR\n$config['language'] = null;\n\n\/\/ use this format for date display (date or strftime format)\n$config['date_format'] = 'Y-m-d';\n\n\/\/ give this choice of date formats to the user to select from\n\/\/ Note: do not use ambiguous formats like m\/d\/Y\n$config['date_formats'] = ['Y-m-d', 'Y\/m\/d', 'Y.m.d', 'd-m-Y', 'd\/m\/Y', 'd.m.Y', 'j.n.Y'];\n\n\/\/ use this format for time display (date or strftime format)\n$config['time_format'] = 'H:i';\n\n\/\/ give this choice of time formats to the user to select from\n$config['time_formats'] = ['G:i', 'H:i', 'g:i a', 'h:i A'];\n\n\/\/ use this format for short date display (derived from date_format and time_format)\n$config['date_short'] = 'D H:i';\n\n\/\/ use this format for detailed date\/time formatting (derived from date_format and time_format)\n$config['date_long'] = 'Y-m-d H:i';\n\n\/\/ store draft message is this mailbox\n\/\/ leave blank if draft messages should not be stored\n\/\/ NOTE: Use folder names with namespace prefix (INBOX. on Courier-IMAP)\n$config['drafts_mbox'] = 'INBOX.Drafts';\n\n\/\/ store spam messages in this mailbox\n\/\/ NOTE: Use folder names with namespace prefix (INBOX. on Courier-IMAP)\n$config['junk_mbox'] = 'INBOX.Trash';\n\n\/\/ store sent message is this mailbox\n\/\/ leave blank if sent messages should not be stored\n\/\/ NOTE: Use folder names with namespace prefix (INBOX. on Courier-IMAP)\n$config['sent_mbox'] = 'INBOX.Sent';\n\n\/\/ move messages to this folder when deleting them\n\/\/ leave blank if they should be deleted directly\n\/\/ NOTE: Use folder names with namespace prefix (INBOX. on Courier-IMAP)\n$config['trash_mbox'] = 'INBOX.Trash';\n\n\/\/ automatically create the above listed default folders on user login\n$config['create_default_folders'] = true;\n\n\/\/ protect the default folders from renames, deletes, and subscription changes\n$config['protect_default_folders'] = true;\n\n\/\/ Disable localization of the default folder names listed above\n$config['show_real_foldernames'] = false;\n\n\/\/ if in your system 0 quota means no limit set this option to true\n$config['quota_zero_as_unlimited'] = false;\n\n\/\/ Make use of the built-in spell checker.\n$config['enable_spellcheck'] = false;\n\n\/\/ Enables spellchecker exceptions dictionary.\n\/\/ Setting it to 'shared' will make the dictionary shared by all users.\n$config['spellcheck_dictionary'] = false;\n\n\/\/ Set the spell checking engine. Possible values:\n\/\/ - 'googie' - the default (also used for connecting to Nox Spell Server, see 'spellcheck_uri' setting)\n\/\/ - 'pspell' - requires the PHP Pspell module and aspell installed\n\/\/ - 'enchant' - requires the PHP Enchant module\n\/\/ - 'atd' - install your own After the Deadline server or check with the people at http:\/\/www.afterthedeadline.com before using their API\n\/\/ Since Google shut down their public spell checking service, the default settings\n\/\/ connect to http:\/\/spell.roundcube.net which is a hosted service provided by Roundcube.\n\/\/ You can connect to any other googie-compliant service by setting 'spellcheck_uri' accordingly.\n$config['spellcheck_engine'] = 'atd';\n\n\/\/ For locally installed Nox Spell Server or After the Deadline services,\n\/\/ please specify the URI to call it.\n\/\/ Get Nox Spell Server from http:\/\/orangoo.com\/labs\/?page_id=72 or\n\/\/ the After the Deadline package from http:\/\/www.afterthedeadline.com.\n\/\/ Leave empty to use the public API of service.afterthedeadline.com\n$config['spellcheck_uri'] = '';\n\n\/\/ These languages can be selected for spell checking.\n\/\/ Configure as a PHP style hash array: ['en'=>'English', 'de'=>'Deutsch'];\n\/\/ Leave empty for default set of available language.\n$config['spellcheck_languages'] = null;\n\n\/\/ Makes that words with all letters capitalized will be ignored (e.g. GOOGLE)\n$config['spellcheck_ignore_caps'] = false;\n\n\/\/ Makes that words with numbers will be ignored (e.g. g00gle)\n$config['spellcheck_ignore_nums'] = false;\n\n\/\/ Makes that words with symbols will be ignored (e.g. g@@gle)\n$config['spellcheck_ignore_syms'] = false;\n\n\/\/ Number of lines at the end of a message considered to contain the signature.\n\/\/ Increase this value if signatures are not properly detected and colored\n$config['sig_max_lines'] = 15;\n\n\/\/ don't let users set pagesize to more than this value if set\n$config['max_pagesize'] = 200;\n\n\/\/ Minimal value of user's 'refresh_interval' setting (in seconds)\n$config['min_refresh_interval'] = 60;\n\n\/\/ Specifies for how many seconds the Undo button will be available\n\/\/ after object delete action. Currently used with supporting address book sources.\n\/\/ Setting it to 0, disables the feature.\n$config['undo_timeout'] = 0;\n\n\/\/ A static list of canned responses which are immutable for the user\n$config['compose_responses_static'] = [\n\/\/ ['name' => 'Canned Response 1', 'text' => 'Static Response One'],\n\/\/ ['name' => 'Canned Response 2', 'text' => 'Static Response Two'],\n];\n\n\/\/ List of HKP key servers for PGP public key lookups in Enigma\/Mailvelope\n\/\/ Note: Lookup is client-side, so the server must support Cross-Origin Resource Sharing\n$config['keyservers'] = ['keys.openpgp.org'];\n\n\/\/ Enables use of the Main Keyring in Mailvelope? If disabled, a per-site keyring\n\/\/ will be used. This is set to false for backwards compatibility.\n$config['mailvelope_main_keyring'] = false;\n\n\/\/ Mailvelope RSA bit size for newly generated keys, either 2048 or 4096.\n\/\/ It maybe desirable to use 2048 for sites with many mobile users.\n$config['mailvelope_keysize'] = 4096;\n\n\/\/ ----------------------------------\n\/\/ ADDRESSBOOK SETTINGS\n\/\/ ----------------------------------\n\n\/\/ This indicates which type of address book to use. Possible choices:\n\/\/ 'sql' - built-in sql addressbook enabled (default),\n\/\/ '' - built-in sql addressbook disabled.\n\/\/ Still LDAP or plugin-added addressbooks will be available.\n\/\/ BC Note: The value can actually be anything except 'sql', it does not matter.\n$config['address_book_type'] = '';\n\n\/\/ In order to enable public ldap search, configure an array like the Verisign\n\/\/ example further below. if you would like to test, simply uncomment the example.\n\/\/ Array key must contain only safe characters, ie. a-zA-Z0-9_\n$config['ldap_public'] = [];\n\n\/\/ If you are going to use LDAP for individual address books, you will need to\n\/\/ set 'user_specific' to true and use the variables to generate the appropriate DNs to access it.\n\/\/\n\/\/ The recommended directory structure for LDAP is to store all the address book entries\n\/\/ under the users main entry, e.g.:\n\/\/\n\/\/ o=root\n\/\/ ou=people\n\/\/ uid=user@domain\n\/\/ mail=contact@contactdomain\n\/\/\n\/\/ So the base_dn would be uid=%fu,ou=people,o=root\n\/\/ The bind_dn would be the same as based_dn or some super user login.\n\/*\n * example config for Verisign directory\n *\n$config['ldap_public']['Verisign'] = [\n 'name' => 'Verisign.com',\n \/\/ Replacement variables supported in host names:\n \/\/ %h - user's IMAP hostname\n \/\/ %n - hostname ($_SERVER['SERVER_NAME'])\n \/\/ %t - hostname without the first part\n \/\/ %d - domain (http hostname $_SERVER['HTTP_HOST'] without the first part)\n \/\/ %z - IMAP domain (IMAP hostname without the first part)\n \/\/ For example %n = mail.domain.tld, %t = domain.tld\n \/\/ Note: Host can also be a full URI e.g. ldaps:\/\/hostname.local:636 (for SSL)\n 'hosts' => array('directory.verisign.com'),\n 'port' => 389,\n 'use_tls' => false,\n 'ldap_version' => 3, \/\/ using LDAPv3\n 'network_timeout' => 10, \/\/ The timeout (in seconds) for connect + bind attempts. This is only supported in PHP >= 5.3.0 with OpenLDAP 2.x\n 'user_specific' => false, \/\/ If true the base_dn, bind_dn and bind_pass default to the user's IMAP login.\n \/\/ When 'user_specific' is enabled following variables can be used in base_dn\/bind_dn config:\n \/\/ %fu - The full username provided, assumes the username is an email\n \/\/ address, uses the username_domain value if not an email address.\n \/\/ %u - The username prior to the '@'.\n \/\/ %d - The domain name after the '@'.\n \/\/ %dc - The domain name hierarchal string e.g. \"dc=test,dc=domain,dc=com\"\n \/\/ %dn - DN found by ldap search when search_filter\/search_base_dn are used\n 'base_dn' => '',\n 'bind_dn' => '',\n 'bind_pass' => '',\n \/\/ It's possible to bind for an individual address book\n \/\/ The login name is used to search for the DN to bind with\n 'search_base_dn' => '',\n 'search_filter' => '', \/\/ e.g. '(&(objectClass=posixAccount)(uid=%u))'\n \/\/ DN and password to bind as before searching for bind DN, if anonymous search is not allowed\n 'search_bind_dn' => '',\n 'search_bind_pw' => '',\n \/\/ Base DN and filter used for resolving the user's domain root DN which feeds the %dc variables\n \/\/ Leave empty to skip this lookup and derive the root DN from the username domain\n 'domain_base_dn' => '',\n 'domain_filter' => '',\n \/\/ Optional map of replacement strings => attributes used when binding for an individual address book\n 'search_bind_attrib' => [], \/\/ e.g. ['%udc' => 'ou']\n \/\/ Default for %dn variable if search doesn't return DN value\n 'search_dn_default' => '',\n \/\/ Optional authentication identifier to be used as SASL authorization proxy\n \/\/ bind_dn need to be empty\n 'auth_cid' => '',\n \/\/ SASL authentication method (for proxy auth), e.g. DIGEST-MD5\n 'auth_method' => '',\n \/\/ Indicates if the addressbook shall be hidden from the list.\n \/\/ With this option enabled you can still search\/view contacts.\n 'hidden' => false,\n \/\/ Indicates if the addressbook shall not list contacts but only allows searching.\n 'searchonly' => false,\n \/\/ Indicates if we can write to the LDAP directory or not.\n \/\/ If writable is true then these fields need to be populated:\n \/\/ LDAP_Object_Classes, required_fields, LDAP_rdn\n 'writable' => false,\n \/\/ To create a new contact these are the object classes to specify\n \/\/ (or any other classes you wish to use).\n 'LDAP_Object_Classes' => ['top', 'inetOrgPerson'],\n \/\/ The RDN field that is used for new entries, this field needs\n \/\/ to be one of the search_fields, the base of base_dn is appended\n \/\/ to the RDN to insert into the LDAP directory.\n 'LDAP_rdn' => 'cn',\n \/\/ The required fields needed to build a new contact as required by\n \/\/ the object classes (can include additional fields not required by the object classes).\n 'required_fields' => ['cn', 'sn', 'mail'],\n 'search_fields' => ['mail', 'cn'], \/\/ fields to search in\n \/\/ mapping of contact fields to directory attributes\n \/\/ 1. for every attribute one can specify the number of values (limit) allowed.\n \/\/ default is 1, a wildcard * means unlimited\n \/\/ 2. another possible parameter is separator character for composite fields\n \/\/ 3. it's possible to define field format for write operations, e.g. for date fields\n \/\/ example: 'birthday:date[YmdHis\\\\Z]'\n 'fieldmap' => [\n \/\/ Roundcube => LDAP:limit\n 'name' => 'cn',\n 'surname' => 'sn',\n 'firstname' => 'givenName',\n 'jobtitle' => 'title',\n 'email' => 'mail:*',\n 'phone:home' => 'homePhone',\n 'phone:work' => 'telephoneNumber',\n 'phone:mobile' => 'mobile',\n 'phone:pager' => 'pager',\n 'phone:workfax' => 'facsimileTelephoneNumber',\n 'street' => 'street',\n 'zipcode' => 'postalCode',\n 'region' => 'st',\n 'locality' => 'l',\n \/\/ if you country is a complex object, you need to configure 'sub_fields' below\n 'country' => 'c',\n 'organization' => 'o',\n 'department' => 'ou',\n 'jobtitle' => 'title',\n 'notes' => 'description',\n 'photo' => 'jpegPhoto',\n \/\/ these currently don't work:\n \/\/ 'manager' => 'manager',\n \/\/ 'assistant' => 'secretary',\n ],\n \/\/ Map of contact sub-objects (attribute name => objectClass(es)), e.g. 'c' => 'country'\n 'sub_fields' => [],\n \/\/ Generate values for the following LDAP attributes automatically when creating a new record\n 'autovalues' => [\n \/\/ 'uid' => 'md5(microtime())', \/\/ You may specify PHP code snippets which are then eval'ed\n \/\/ 'mail' => '{givenname}.{sn}@mydomain.com', \/\/ or composite strings with placeholders for existing attributes\n ],\n 'sort' => 'cn', \/\/ The field to sort the listing by.\n 'scope' => 'sub', \/\/ search mode: sub|base|list\n 'filter' => '(objectClass=inetOrgPerson)', \/\/ used for basic listing (if not empty) and will be &'d with search queries. example: status=act\n 'fuzzy_search' => true, \/\/ server allows wildcard search\n 'vlv' => false, \/\/ Enable Virtual List View to more efficiently fetch paginated data (if server supports it)\n 'vlv_search' => false, \/\/ Use Virtual List View functions for autocompletion searches (if server supports it)\n 'numsub_filter' => '(objectClass=organizationalUnit)', \/\/ with VLV, we also use numSubOrdinates to query the total number of records. Set this filter to get all numSubOrdinates attributes for counting\n 'config_root_dn' => 'cn=config', \/\/ Root DN to search config entries (e.g. vlv indexes)\n 'sizelimit' => '0', \/\/ Enables you to limit the count of entries fetched. Setting this to 0 means no limit.\n 'timelimit' => '0', \/\/ Sets the number of seconds how long is spend on the search. Setting this to 0 means no limit.\n 'referrals' => false, \/\/ Sets the LDAP_OPT_REFERRALS option. Mostly used in multi-domain Active Directory setups\n 'dereference' => 0, \/\/ Sets the LDAP_OPT_DEREF option. One of: LDAP_DEREF_NEVER, LDAP_DEREF_SEARCHING, LDAP_DEREF_FINDING, LDAP_DEREF_ALWAYS\n \/\/ Used where addressbook contains aliases to objects elsewhere in the LDAP tree.\n\n \/\/ definition for contact groups (uncomment if no groups are supported)\n \/\/ for the groups base_dn, the user replacements %fu, %u, %d and %dc work as for base_dn (see above)\n \/\/ if the groups base_dn is empty, the contact base_dn is used for the groups as well\n \/\/ -> in this case, assure that groups and contacts are separated due to the concerning filters!\n 'groups' => [\n 'base_dn' => '',\n 'scope' => 'sub', \/\/ Search mode: sub|base|list\n 'filter' => '(objectClass=groupOfNames)',\n 'object_classes' => ['top', 'groupOfNames'], \/\/ Object classes to be assigned to new groups\n 'member_attr' => 'member', \/\/ Name of the default member attribute, e.g. uniqueMember\n 'name_attr' => 'cn', \/\/ Attribute to be used as group name\n 'email_attr' => 'mail', \/\/ Group email address attribute (e.g. for mailing lists)\n 'member_filter' => '(objectclass=*)', \/\/ Optional filter to use when querying for group members\n 'vlv' => false, \/\/ Use VLV controls to list groups\n 'class_member_attr' => [ \/\/ Mapping of group object class to member attribute used in these objects\n 'groupofnames' => 'member',\n 'groupofuniquenames' => 'uniquemember'\n ],\n ],\n \/\/ this configuration replaces the regular groups listing in the directory tree with\n \/\/ a hard-coded list of groups, each listing entries with the configured base DN and filter.\n \/\/ if the 'groups' option from above is set, it'll be shown as the first entry with the name 'Groups'\n 'group_filters' => [\n 'departments' => [\n 'name' => 'Company Departments',\n 'scope' => 'list',\n 'base_dn' => 'ou=Groups,dc=mydomain,dc=com',\n 'filter' => '(|(objectclass=groupofuniquenames)(objectclass=groupofurls))',\n 'name_attr' => 'cn',\n ],\n 'customers' => [\n 'name' => 'Customers',\n 'scope' => 'sub',\n 'base_dn' => 'ou=Customers,dc=mydomain,dc=com',\n 'filter' => '(objectClass=inetOrgPerson)',\n 'name_attr' => 'sn',\n ],\n ],\n];\n*\/\n\n\/\/ An ordered array of the ids of the addressbooks that should be searched\n\/\/ when populating address autocomplete fields server-side. ex: ['sql','Verisign'];\n$config['autocomplete_addressbooks'] = ['sql'];\n\n\/\/ The minimum number of characters required to be typed in an autocomplete field\n\/\/ before address books will be searched. Most useful for LDAP directories that\n\/\/ may need to do lengthy results building given overly-broad searches\n$config['autocomplete_min_length'] = 1;\n\n\/\/ Number of parallel autocomplete requests.\n\/\/ If there's more than one address book, n parallel (async) requests will be created,\n\/\/ where each request will search in one address book. By default (0), all address\n\/\/ books are searched in one request.\n$config['autocomplete_threads'] = 0;\n\n\/\/ Max. number of entries in autocomplete popup. Default: 15.\n$config['autocomplete_max'] = 15;\n\n\/\/ show address fields in this order\n\/\/ available placeholders: {street}, {locality}, {zipcode}, {country}, {region}\n$config['address_template'] = '{street}{locality} {zipcode}{country} {region}';\n\n\/\/ Matching mode for addressbook search (including autocompletion)\n\/\/ 0 - partial (*abc*), default\n\/\/ 1 - strict (abc)\n\/\/ 2 - prefix (abc*)\n\/\/ Note: For LDAP sources fuzzy_search must be enabled to use 'partial' or 'prefix' mode\n$config['addressbook_search_mode'] = 0;\n\n\/\/ List of fields used on contacts list and for autocompletion searches\n\/\/ Warning: These are field names not LDAP attributes (see 'fieldmap' setting)!\n$config['contactlist_fields'] = ['name', 'firstname', 'surname', 'email'];\n\n\/\/ Template of contact entry on the autocompletion list.\n\/\/ You can use contact fields as: name, email, organization, department, etc.\n\/\/ See program\/actions\/contacts\/index.php for a list\n$config['contact_search_name'] = '{name} <{email}>';\n\n\/\/ Contact mode. If your contacts are mostly business, switch it to 'business'.\n\/\/ This will prioritize form fields related to 'work' (instead of 'home').\n\/\/ Default: 'private'.\n$config['contact_form_mode'] = 'private';\n\n\/\/ The addressbook source to store automatically collected recipients in.\n\/\/ Default: true (the built-in \"Collected recipients\" addressbook, source id = '1')\n\/\/ Note: It can be set to any writeable addressbook, e.g. 'sql'\n$config['collected_recipients'] = true;\n\n\/\/ The addressbook source to store trusted senders in.\n\/\/ Default: true (the built-in \"Trusted senders\" addressbook, source id = '2')\n\/\/ Note: It can be set to any writeable addressbook, e.g. 'sql'\n$config['collected_senders'] = true;\n\n\n\/\/ ----------------------------------\n\/\/ USER PREFERENCES\n\/\/ ----------------------------------\n\n\/\/ Use this charset as fallback for message decoding\n$config['default_charset'] = 'ISO-8859-1';\n\n\/\/ Skin name: folder from skins\/\n$config['skin'] = 'elastic';\n\n\/\/ Limit skins available for the user.\n\/\/ Note: When not empty, it should include the default skin set in 'skin' option.\n$config['skins_allowed'] = ['elastic'];\n\n\/\/ Enables using standard browser windows (that can be handled as tabs)\n\/\/ instead of popup windows\n$config['standard_windows'] = false;\n\n\/\/ show up to X items in messages list view\n$config['mail_pagesize'] = 50;\n\n\/\/ show up to X items in contacts list view\n$config['addressbook_pagesize'] = 50;\n\n\/\/ sort contacts by this col (preferably either one of name, firstname, surname)\n$config['addressbook_sort_col'] = 'surname';\n\n\/\/ The way how contact names are displayed in the list.\n\/\/ 0: prefix firstname middlename surname suffix (only if display name is not set)\n\/\/ 1: firstname middlename surname\n\/\/ 2: surname firstname middlename\n\/\/ 3: surname, firstname middlename\n$config['addressbook_name_listing'] = 0;\n\n\/\/ use this timezone to display date\/time\n\/\/ valid timezone identifiers are listed here: php.net\/manual\/en\/timezones.php\n\/\/ 'auto' will use the browser's timezone settings\n$config['timezone'] = 'auto';\n\n\/\/ prefer displaying HTML messages\n$config['prefer_html'] = true;\n\n\/\/ Display remote resources (inline images, styles) in HTML messages. Default: 0.\n\/\/ 0 - Never, always ask\n\/\/ 1 - Allow from my contacts (all writeable addressbooks + collected senders and recipients)\n\/\/ 2 - Always allow\n\/\/ 3 - Allow from trusted senders only\n$config['show_images'] = 0;\n\n\/\/ open messages in new window\n$config['message_extwin'] = false;\n\n\/\/ open message compose form in new window\n$config['compose_extwin'] = false;\n\n\/\/ compose html formatted messages by default\n\/\/ 0 - never,\n\/\/ 1 - always,\n\/\/ 2 - on reply to HTML message,\n\/\/ 3 - on forward or reply to HTML message\n\/\/ 4 - always, except when replying to plain text message\n$config['htmleditor'] = 0;\n\n\/\/ save copies of compose messages in the browser's local storage\n\/\/ for recovery in case of browser crashes and session timeout.\n$config['compose_save_localstorage'] = true;\n\n\/\/ show pretty dates as standard\n$config['prettydate'] = true;\n\n\/\/ save compose message every 300 seconds (5min)\n$config['draft_autosave'] = 300;\n\n\/\/ Interface layout. Default: 'widescreen'.\n\/\/ 'widescreen' - three columns\n\/\/ 'desktop' - two columns, preview on bottom\n\/\/ 'list' - two columns, no preview\n$config['layout'] = 'widescreen';\n\n\/\/ Mark as read when viewing a message (delay in seconds)\n\/\/ Set to -1 if messages should not be marked as read\n$config['mail_read_time'] = 0;\n\n\/\/ Clear Trash on logout\n$config['logout_purge'] = false;\n\n\/\/ Compact INBOX on logout\n$config['logout_expunge'] = false;\n\n\/\/ Display attached images below the message body\n$config['inline_images'] = true;\n\n\/\/ Encoding of long\/non-ascii attachment names:\n\/\/ 0 - Full RFC 2231 compatible\n\/\/ 1 - RFC 2047 for 'name' and RFC 2231 for 'filename' parameter (Thunderbird's default)\n\/\/ 2 - Full 2047 compatible\n$config['mime_param_folding'] = 1;\n\n\/\/ Set true if deleted messages should not be displayed\n\/\/ This will make the application run slower\n$config['skip_deleted'] = false;\n\n\/\/ Set true to Mark deleted messages as read as well as deleted\n\/\/ False means that a message's read status is not affected by marking it as deleted\n$config['read_when_deleted'] = true;\n\n\/\/ Set to true to never delete messages immediately\n\/\/ Use 'Purge' to remove messages marked as deleted\n$config['flag_for_deletion'] = false;\n\n\/\/ Default interval for auto-refresh requests (in seconds)\n\/\/ These are requests for system state updates e.g. checking for new messages, etc.\n\/\/ Setting it to 0 disables the feature.\n$config['refresh_interval'] = 60;\n\n\/\/ If true all folders will be checked for recent messages\n$config['check_all_folders'] = false;\n\n\/\/ If true, after message\/contact delete\/move, the next message\/contact will be displayed\n$config['display_next'] = true;\n\n\/\/ Default messages listing mode. One of 'threads' or 'list'.\n$config['default_list_mode'] = 'list';\n\n\/\/ 0 - Do not expand threads\n\/\/ 1 - Expand all threads automatically\n\/\/ 2 - Expand only threads with unread messages\n$config['autoexpand_threads'] = 0;\n\n\/\/ When replying:\n\/\/ -1 - don't cite the original message\n\/\/ 0 - place cursor below the original message\n\/\/ 1 - place cursor above original message (top posting)\n\/\/ 2 - place cursor above original message (top posting), but do not indent the quote\n$config['reply_mode'] = 0;\n\n\/\/ When replying strip original signature from message\n$config['strip_existing_sig'] = true;\n\n\/\/ Show signature:\n\/\/ 0 - Never\n\/\/ 1 - Always\n\/\/ 2 - New messages only\n\/\/ 3 - Forwards and Replies only\n$config['show_sig'] = 1;\n\n\/\/ By default the signature is placed depending on cursor position (reply_mode).\n\/\/ Sometimes it might be convenient to start the reply on top but keep\n\/\/ the signature below the quoted text (sig_below = true).\n$config['sig_below'] = false;\n\n\/\/ Enables adding of standard separator to the signature\n$config['sig_separator'] = true;\n\n\/\/ Use MIME encoding (quoted-printable) for 8bit characters in message body\n$config['force_7bit'] = false;\n\n\/\/ Default fields configuration for mail search.\n\/\/ The array can contain a per-folder list of header fields which should be considered when searching\n\/\/ The entry with key '*' stands for all folders which do not have a specific list set.\n\/\/ Supported fields: subject, from, to, cc, bcc, body, text.\n\/\/ Please note that folder names should to be in sync with $config['*_mbox'] options\n$config['search_mods'] = null; \/\/ Example: ['*' => ['subject'=>1, 'from'=>1], 'Sent' => ['subject'=>1, 'to'=>1]];\n\n\/\/ Defaults of the addressbook search field configuration.\n$config['addressbook_search_mods'] = null; \/\/ Example: ['name'=>1, 'firstname'=>1, 'surname'=>1, 'email'=>1, '*'=>1];\n\n\/\/ Directly delete messages in Junk instead of moving to Trash\n$config['delete_junk'] = false;\n\n\/\/ Behavior if a received message requests a message delivery notification (read receipt)\n\/\/ 0 = ask the user,\n\/\/ 1 = send automatically,\n\/\/ 2 = ignore (never send or ask)\n\/\/ 3 = send automatically if sender is in my contacts, otherwise ask the user\n\/\/ 4 = send automatically if sender is in my contacts, otherwise ignore\n\/\/ 5 = send automatically if sender is a trusted sender, otherwise ask the user\n\/\/ 6 = send automatically if sender is a trusted sender, otherwise ignore\n$config['mdn_requests'] = 0;\n\n\/\/ Return receipt checkbox default state\n$config['mdn_default'] = 0;\n\n\/\/ Delivery Status Notification checkbox default state\n\/\/ Note: This can be used only if smtp_server is non-empty\n$config['dsn_default'] = 0;\n\n\/\/ Place replies in the folder of the message being replied to\n$config['reply_same_folder'] = false;\n\n\/\/ Sets default mode of Forward feature to \"forward as attachment\"\n$config['forward_attachment'] = false;\n\n\/\/ Defines address book (internal index) to which new contacts will be added\n\/\/ By default it is the first writeable addressbook.\n\/\/ Note: Use '0' for built-in address book.\n$config['default_addressbook'] = 'carddav_1';\n\n\/\/ Enables spell checking before sending a message.\n$config['spellcheck_before_send'] = false;\n\n\/\/ Skip alternative email addresses in autocompletion (show one address per contact)\n$config['autocomplete_single'] = false;\n\n\/\/ Default font for composed HTML message.\n\/\/ Supported values: Andale Mono, Arial, Arial Black, Book Antiqua, Courier New,\n\/\/ Georgia, Helvetica, Impact, Tahoma, Terminal, Times New Roman, Trebuchet MS, Verdana\n$config['default_font'] = 'Verdana';\n\n\/\/ Default font size for composed HTML message.\n\/\/ Supported sizes: 8pt, 10pt, 12pt, 14pt, 18pt, 24pt, 36pt\n$config['default_font_size'] = '10pt';\n\n\/\/ Enables display of email address with name instead of a name (and address in title)\n$config['message_show_email'] = false;\n\n\/\/ Default behavior of Reply-All button:\n\/\/ 0 - Reply-All always\n\/\/ 1 - Reply-List if mailing list is detected\n$config['reply_all_mode'] = 0;\n\n\/\/ Cpanel include to ensure mandatory values are set and not broken by custom updates\n$incfiles = glob(\"\/usr\/local\/cpanel\/base\/3rdparty\/roundcube\/config\/inc.d\/*.php\");\nforeach($incfiles as $incphp){\n include $incphp;\n}\n"}