· 4 years ago · Jul 07, 2021, 08:48 PM
1<?php
2
3// ---------------------------------------------------------------------
4// WARNING: Do not edit this file! Copy configuration to config.inc.php.
5// ---------------------------------------------------------------------
6
7/*
8 +-----------------------------------------------------------------------+
9 | Default settings for all configuration options |
10 | |
11 | This file is part of the Roundcube Webmail client |
12 | Copyright (C) The Roundcube Dev Team |
13 | |
14 | Licensed under the GNU General Public License version 3 or |
15 | any later version with exceptions for skins & plugins. |
16 | See the README file for a full license statement. |
17 +-----------------------------------------------------------------------+
18*/
19
20$config = array();
21
22// ----------------------------------
23// SQL DATABASE
24// ----------------------------------
25
26// Database connection string (DSN) for read+write operations
27// Format (compatible with PEAR MDB2): db_provider://user:password@host/database
28// Currently supported db_providers: mysql, pgsql, sqlite, mssql, sqlsrv, oracle
29// For examples see http://pear.php.net/manual/en/package.database.mdb2.intro-dsn.php
30// Note: for SQLite use absolute path (Linux): 'sqlite:////full/path/to/sqlite.db?mode=0646'
31// or (Windows): 'sqlite:///C:/full/path/to/sqlite.db'
32// Note: Various drivers support various additional arguments for connection,
33// for Mysql: key, cipher, cert, capath, ca, verify_server_cert,
34// for Postgres: application_name, sslmode, sslcert, sslkey, sslrootcert, sslcrl, sslcompression, service.
35// e.g. 'mysql://roundcube:@localhost/roundcubemail?verify_server_cert=false'
36$config['db_dsnw'] = 'mysql://roundcube:@localhost/roundcubemail';
37
38// Database DSN for read-only operations (if empty write database will be used)
39// useful for database replication
40$config['db_dsnr'] = '';
41
42// Disable the use of already established dsnw connections for subsequent reads
43$config['db_dsnw_noread'] = false;
44
45// use persistent db-connections
46// beware this will not "always" work as expected
47// see: http://www.php.net/manual/en/features.persistent-connections.php
48$config['db_persistent'] = false;
49
50// you can define specific table (and sequence) names prefix
51$config['db_prefix'] = '';
52
53// Mapping of table names and connections to use for ALL operations.
54// This can be used in a setup with replicated databases and a DB master
55// where read/write access to cache tables should not go to master.
56$config['db_table_dsn'] = array(
57// 'cache' => 'r',
58// 'cache_index' => 'r',
59// 'cache_thread' => 'r',
60// 'cache_messages' => 'r',
61);
62
63// It is possible to specify database variable values e.g. some limits here.
64// Use them if your server is not MySQL or for better performance.
65// For example Roundcube uses max_allowed_packet value (in bytes)
66// which limits query size for database cache operations.
67$config['db_max_allowed_packet'] = null;
68
69
70// ----------------------------------
71// LOGGING/DEBUGGING
72// ----------------------------------
73
74// log driver: 'syslog', 'stdout' or 'file'.
75$config['log_driver'] = 'file';
76
77// date format for log entries
78// (read http://php.net/manual/en/function.date.php for all format characters)
79$config['log_date_format'] = 'd-M-Y H:i:s O';
80
81// length of the session ID to prepend each log line with
82// set to 0 to avoid session IDs being logged.
83$config['log_session_id'] = 8;
84
85// Default extension used for log file name
86$config['log_file_ext'] = '.log';
87
88// Syslog ident string to use, if using the 'syslog' log driver.
89$config['syslog_id'] = 'roundcube';
90
91// Syslog facility to use, if using the 'syslog' log driver.
92// For possible values see installer or http://php.net/manual/en/function.openlog.php
93$config['syslog_facility'] = LOG_USER;
94
95// Activate this option if logs should be written to per-user directories.
96// Data will only be logged if a directory <log_dir>/<username>/ exists and is writable.
97$config['per_user_logging'] = false;
98
99// Log sent messages to <log_dir>/sendmail.log or to syslog
100$config['smtp_log'] = true;
101
102// Log successful/failed logins to <log_dir>/userlogins.log or to syslog
103$config['log_logins'] = false;
104
105// Log session debug information/authentication errors to <log_dir>/session.log or to syslog
106$config['session_debug'] = false;
107
108// Log SQL queries to <log_dir>/sql.log or to syslog
109$config['sql_debug'] = false;
110
111// Log IMAP conversation to <log_dir>/imap.log or to syslog
112$config['imap_debug'] = false;
113
114// Log LDAP conversation to <log_dir>/ldap.log or to syslog
115$config['ldap_debug'] = false;
116
117// Log SMTP conversation to <log_dir>/smtp.log or to syslog
118$config['smtp_debug'] = false;
119
120// Log Memcache conversation to <log_dir>/memcache.log or to syslog
121$config['memcache_debug'] = false;
122
123// Log APC conversation to <log_dir>/apc.log or to syslog
124$config['apc_debug'] = false;
125
126// Log Redis conversation to <log_dir>/redis.log or to syslog
127$config['redis_debug'] = false;
128
129
130// ----------------------------------
131// IMAP
132// ----------------------------------
133
134// The IMAP host chosen to perform the log-in.
135// Leave blank to show a textbox at login, give a list of hosts
136// to display a pulldown menu or set one host as string.
137// Enter hostname with prefix ssl:// to use Implicit TLS, or use
138// prefix tls:// to use STARTTLS.
139// Supported replacement variables:
140// %n - hostname ($_SERVER['SERVER_NAME'])
141// %t - hostname without the first part
142// %d - domain (http hostname $_SERVER['HTTP_HOST'] without the first part)
143// %s - domain name after the '@' from e-mail address provided at login screen
144// For example %n = mail.domain.tld, %t = domain.tld
145// WARNING: After hostname change update of mail_host column in users table is
146// required to match old user data records with the new host.
147$config['default_host'] = 'localhost';
148
149// TCP port used for IMAP connections
150$config['default_port'] = 143;
151
152// IMAP authentication method (DIGEST-MD5, CRAM-MD5, LOGIN, PLAIN or null).
153// Use 'IMAP' to authenticate with IMAP LOGIN command.
154// By default the most secure method (from supported) will be selected.
155$config['imap_auth_type'] = null;
156
157// IMAP socket context options
158// See http://php.net/manual/en/context.ssl.php
159// The example below enables server certificate validation
160$config['imap_conn_options'] = array(
161 'ssl' => array(
162 'verify_peer' => true,
163 'verify_depth' => 3,
164 'cafile' => '/etc/apache2/mycert/ssl.crt',
165 ),
166 );
167// Note: These can be also specified as an array of options indexed by hostname
168// $config['imap_conn_options'] = null;
169
170// IMAP connection timeout, in seconds. Default: 0 (use default_socket_timeout)
171$config['imap_timeout'] = 0;
172
173// Optional IMAP authentication identifier to be used as authorization proxy
174$config['imap_auth_cid'] = null;
175
176// Optional IMAP authentication password to be used for imap_auth_cid
177$config['imap_auth_pw'] = null;
178
179// If you know your imap's folder delimiter, you can specify it here.
180// Otherwise it will be determined automatically
181$config['imap_delimiter'] = null;
182
183// If you know your imap's folder vendor, you can specify it here.
184// Otherwise it will be determined automatically. Use lower-case
185// identifiers, e.g. 'dovecot', 'cyrus', 'gimap', 'hmail', 'uw-imap'.
186$config['imap_vendor'] = null;
187
188// If IMAP server doesn't support NAMESPACE extension, but you're
189// using shared folders or personal root folder is non-empty, you'll need to
190// set these options. All can be strings or arrays of strings.
191// Note: Folders need to be ended with directory separator, e.g. "INBOX."
192// (special directory "~" is an exception to this rule)
193// Note: These can be used also to overwrite server's namespaces
194// Note: Set these to FALSE to disable access to specified namespace
195$config['imap_ns_personal'] = null;
196$config['imap_ns_other'] = null;
197$config['imap_ns_shared'] = null;
198
199// By default IMAP capabilities are readed after connection to IMAP server
200// In some cases, e.g. when using IMAP proxy, there's a need to refresh the list
201// after login. Set to True if you've got this case.
202$config['imap_force_caps'] = false;
203
204// By default list of subscribed folders is determined using LIST-EXTENDED
205// extension if available. Some servers (dovecot 1.x) returns wrong results
206// for shared namespaces in this case. https://github.com/roundcube/roundcubemail/issues/2474
207// Enable this option to force LSUB command usage instead.
208// Deprecated: Use imap_disabled_caps = array('LIST-EXTENDED')
209$config['imap_force_lsub'] = false;
210
211// Some server configurations (e.g. Courier) doesn't list folders in all namespaces
212// Enable this option to force listing of folders in all namespaces
213$config['imap_force_ns'] = false;
214
215// Some servers return hidden folders (name starting witha dot)
216// from user home directory. IMAP RFC does not forbid that.
217// Enable this option to hide them and disable possibility to create such.
218$config['imap_skip_hidden_folders'] = false;
219
220// Some servers do not support folders with both folders and messages inside
221// If your server supports that use true, if it does not, use false.
222// By default it will be determined automatically (once per user session).
223$config['imap_dual_use_folders'] = null;
224
225// List of disabled imap extensions.
226// Use if your IMAP server has broken implementation of some feature
227// and you can't remove it from CAPABILITY string on server-side.
228// For example UW-IMAP server has broken ESEARCH.
229// Note: Because the list is cached, re-login is required after change.
230$config['imap_disabled_caps'] = array();
231
232// Log IMAP session identifiers after each IMAP login.
233// This is used to relate IMAP session with Roundcube user sessions
234$config['imap_log_session'] = false;
235
236// Type of IMAP indexes cache. Supported values: 'db', 'apc' and 'memcache' or 'memcached'.
237$config['imap_cache'] = null;
238
239// Enables messages cache. Only 'db' cache is supported.
240// This requires an IMAP server that supports QRESYNC and CONDSTORE
241// extensions (RFC7162). See synchronize() in program/lib/Roundcube/rcube_imap_cache.php
242// for further info, or if you experience syncing problems.
243$config['messages_cache'] = false;
244
245// Lifetime of IMAP indexes cache. Possible units: s, m, h, d, w
246$config['imap_cache_ttl'] = '10d';
247
248// Lifetime of messages cache. Possible units: s, m, h, d, w
249$config['messages_cache_ttl'] = '10d';
250
251// Maximum cached message size in kilobytes.
252// Note: On MySQL this should be less than (max_allowed_packet - 30%)
253$config['messages_cache_threshold'] = 50;
254
255
256// ----------------------------------
257// SMTP
258// ----------------------------------
259
260// SMTP server host (for sending mails).
261// Enter hostname with prefix ssl:// to use Implicit TLS, or use
262// prefix tls:// to use STARTTLS.
263// Supported replacement variables:
264// %h - user's IMAP hostname
265// %n - hostname ($_SERVER['SERVER_NAME'])
266// %t - hostname without the first part
267// %d - domain (http hostname $_SERVER['HTTP_HOST'] without the first part)
268// %z - IMAP domain (IMAP hostname without the first part)
269// For example %n = mail.domain.tld, %t = domain.tld
270$config['smtp_server'] = 'localhost';
271
272// SMTP port. Use 25 for cleartext, 465 for Implicit TLS, or 587 for STARTTLS (default)
273$config['smtp_port'] = 25;
274
275// SMTP username (if required) if you use %u as the username Roundcube
276// will use the current username for login
277$config['smtp_user'] = '%u';
278
279// SMTP password (if required) if you use %p as the password Roundcube
280// will use the current user's password for login
281$config['smtp_pass'] = '%p';
282
283// SMTP AUTH type (DIGEST-MD5, CRAM-MD5, LOGIN, PLAIN or empty to use
284// best server supported one)
285$config['smtp_auth_type'] = 'PLAIN';
286
287// Optional SMTP authentication identifier to be used as authorization proxy
288$config['smtp_auth_cid'] = null;
289
290// Optional SMTP authentication password to be used for smtp_auth_cid
291$config['smtp_auth_pw'] = null;
292
293// SMTP HELO host
294// Hostname to give to the remote server for SMTP 'HELO' or 'EHLO' messages
295// Leave this blank and you will get the server variable 'server_name' or
296// localhost if that isn't defined.
297$config['smtp_helo_host'] = '';
298
299// SMTP connection timeout, in seconds. Default: 0 (use default_socket_timeout)
300// Note: There's a known issue where using ssl connection with
301// timeout > 0 causes connection errors (https://bugs.php.net/bug.php?id=54511)
302$config['smtp_timeout'] = 0;
303
304// SMTP socket context options
305// See http://php.net/manual/en/context.ssl.php
306// The example below enables server certificate validation, and
307// requires 'smtp_timeout' to be non zero.
308 $config['smtp_conn_options'] = array(
309 'ssl' => array(
310 'verify_peer' => true,
311// 'verify_depth' => 3,
312 'cafile' => '/etc/apache2/mycert/ssl.crt',
313 ),
314 );
315// Note: These can be also specified as an array of options indexed by hostname
316// $config['smtp_conn_options'] = null;
317
318
319// ----------------------------------
320// LDAP
321// ----------------------------------
322
323// Type of LDAP cache. Supported values: 'db', 'apc' and 'memcache' or 'memcached'.
324$config['ldap_cache'] = 'db';
325
326// Lifetime of LDAP cache. Possible units: s, m, h, d, w
327$config['ldap_cache_ttl'] = '10m';
328
329
330// ----------------------------------
331// CACHE(S)
332// ----------------------------------
333
334// Use these hosts for accessing memcached
335// Define any number of hosts in the form of hostname:port or unix:///path/to/socket.file
336// Example: array('localhost:11211', '192.168.1.12:11211', 'unix:///var/tmp/memcached.sock');
337$config['memcache_hosts'] = null;
338
339// Controls the use of a persistent connections to memcache servers
340// See http://php.net/manual/en/memcache.addserver.php
341$config['memcache_pconnect'] = true;
342
343// Value in seconds which will be used for connecting to the daemon
344// See http://php.net/manual/en/memcache.addserver.php
345$config['memcache_timeout'] = 1;
346
347// Controls how often a failed server will be retried (value in seconds).
348// Setting this parameter to -1 disables automatic retry.
349// See http://php.net/manual/en/memcache.addserver.php
350$config['memcache_retry_interval'] = 15;
351
352// Use these hosts for accessing Redis.
353// Currently only one host is supported. Cluster support may come in a future release.
354// You can pass 4 fields, host, port (optional), database (optional) and password (optional).
355// Unset fields will be set to the default values host=127.0.0.1, port=6379.
356// Examples:
357// array('localhost:6379');
358// array('192.168.1.1:6379:1:secret');
359// array('unix:///var/run/redis/redis-server.sock:1:secret');
360$config['redis_hosts'] = null;
361
362// Maximum size of an object in memcache (in bytes). Default: 2MB
363$config['memcache_max_allowed_packet'] = '2M';
364
365// Maximum size of an object in APC cache (in bytes). Default: 2MB
366$config['apc_max_allowed_packet'] = '2M';
367
368// Maximum size of an object in Redis cache (in bytes). Default: 2MB
369$config['redis_max_allowed_packet'] = '2M';
370
371
372// ----------------------------------
373// SYSTEM
374// ----------------------------------
375
376// THIS OPTION WILL ALLOW THE INSTALLER TO RUN AND CAN EXPOSE SENSITIVE CONFIG DATA.
377// ONLY ENABLE IT IF YOU'RE REALLY SURE WHAT YOU'RE DOING!
378$config['enable_installer'] = true;
379
380// don't allow these settings to be overridden by the user
381$config['dont_override'] = array();
382
383// List of disabled UI elements/actions
384$config['disabled_actions'] = array();
385
386// define which settings should be listed under the 'advanced' block
387// which is hidden by default
388$config['advanced_prefs'] = array();
389
390// provide an URL where a user can get support for this Roundcube installation
391// PLEASE DO NOT LINK TO THE ROUNDCUBE.NET WEBSITE HERE!
392$config['support_url'] = '';
393
394// Logo image replacement. Specifies location of the image as:
395// - URL relative to the document root of this Roundcube installation
396// - full URL with http:// or https:// prefix
397// - URL relative to the current skin folder (when starts with a '/')
398//
399// An array can be used to specify different logos for specific template files
400// The array key specifies the place(s) the logo should be applied to and
401// is made up of (up to) 3 parts:
402// - skin name prefix (always with colon, can be replaced with *)
403// - template name (or * for all templates)
404// - logo type - it is used for logos used on multiple templates
405// the available types include '[favicon]' for favicon, '[print]' for logo on all print
406// templates (e.g. messageprint, contactprint) and '[small]' for small screen logo in supported skins
407//
408// Example config for skin_logo
409/*
410 array(
411 // show the image /images/logo_login_small.png for the Login screen in the Elastic skin on small screens
412 "elastic:login[small]" => "/images/logo_login_small.png",
413 // show the image /images/logo_login.png for the Login screen in the Elastic skin
414 "elastic:login" => "/images/logo_login.png",
415 // show the image /images/logo_small.png in the Elastic skin
416 "elastic:*[small]" => "/images/logo_small.png",
417 // show the image /images/larry.png in the Larry skin
418 "larry:*" => "/images/larry.png",
419 // show the image /images/logo_login.png on the login template in all skins
420 "login" => "/images/logo_login.png",
421 // show the image /images/logo_print.png for all print type logos in all skins
422 "[print]" => "/images/logo_print.png",
423 );
424*/
425$config['skin_logo'] = null;
426
427// automatically create a new Roundcube user when log-in the first time.
428// a new user will be created once the IMAP login succeeds.
429// set to false if only registered users can use this service
430$config['auto_create_user'] = true;
431
432// Enables possibility to log in using email address from user identities
433$config['user_aliases'] = false;
434
435// use this folder to store log files
436// must be writeable for the user who runs PHP process (Apache user if mod_php is being used)
437// This is used by the 'file' log driver.
438$config['log_dir'] = RCUBE_INSTALL_PATH . 'logs/';
439
440// use this folder to store temp files
441// must be writeable for the user who runs PHP process (Apache user if mod_php is being used)
442$config['temp_dir'] = RCUBE_INSTALL_PATH . 'temp/';
443
444// expire files in temp_dir after 48 hours
445// possible units: s, m, h, d, w
446$config['temp_dir_ttl'] = '48h';
447
448// Enforce connections over https
449// With this option enabled, all non-secure connections will be redirected.
450// It can be also a port number, hostname or hostname:port if they are
451// different than default HTTP_HOST:443
452$config['force_https'] = false;
453
454// tell PHP that it should work as under secure connection
455// even if it doesn't recognize it as secure ($_SERVER['HTTPS'] is not set)
456// e.g. when you're running Roundcube behind a https proxy
457// this option is mutually exclusive to 'force_https' and only either one of them should be set to true.
458$config['use_https'] = false;
459
460// Allow browser-autocompletion on login form.
461// 0 - disabled, 1 - username and host only, 2 - username, host, password
462$config['login_autocomplete'] = 0;
463
464// Forces conversion of logins to lower case.
465// 0 - disabled, 1 - only domain part, 2 - domain and local part.
466// If users authentication is case-insensitive this must be enabled.
467// Note: After enabling it all user records need to be updated, e.g. with query:
468// UPDATE users SET username = LOWER(username);
469$config['login_lc'] = 2;
470
471// Maximum length (in bytes) of logon username and password.
472$config['login_username_maxlen'] = 1024;
473$config['login_password_maxlen'] = 1024;
474
475// Logon username filter. Regular expression for use with preg_match().
476// Example: '/^[a-z0-9_@.-]+$/'
477$config['login_username_filter'] = null;
478
479// Brute-force attacks prevention.
480// The value specifies maximum number of failed logon attempts per minute.
481$config['login_rate_limit'] = 3;
482
483// Includes should be interpreted as PHP files
484$config['skin_include_php'] = false;
485
486// display product name and software version on login screen
487// 0 - hide product name and version number, 1 - show product name only, 2 - show product name and version number
488$config['display_product_info'] = 1;
489
490// Session lifetime in minutes
491$config['session_lifetime'] = 10;
492
493// Session domain: .example.org
494$config['session_domain'] = '';
495
496// Session name. Default: 'roundcube_sessid'
497$config['session_name'] = null;
498
499// Session authentication cookie name. Default: 'roundcube_sessauth'
500$config['session_auth_name'] = null;
501
502// Session path. Defaults to PHP session.cookie_path setting.
503$config['session_path'] = null;
504
505// Backend to use for session storage. Can either be 'db' (default), 'redis', 'memcache', or 'php'
506//
507// If set to 'memcache' or 'memcached', a list of servers need to be specified in 'memcache_hosts'
508// Make sure the Memcache extension (https://pecl.php.net/package/memcache) version >= 2.0.0
509// or the Memcached extension (https://pecl.php.net/package/memcached) version >= 2.0.0 is installed.
510//
511// If set to 'redis', a server needs to be specified in 'redis_hosts'
512// Make sure the Redis extension (https://pecl.php.net/package/redis) version >= 2.0.0 is installed.
513//
514// Setting this value to 'php' will use the default session save handler configured in PHP
515$config['session_storage'] = 'db';
516
517// List of trusted proxies
518// X_FORWARDED_* and X_REAL_IP headers are only accepted from these IPs
519$config['proxy_whitelist'] = array();
520
521// List of trusted host names
522// Attackers can modify Host header of the HTTP request causing $_SERVER['SERVER_NAME']
523// or $_SERVER['HTTP_HOST'] variables pointing to a different host, that could be used
524// to collect user names and passwords. Some server configurations prevent that, but not all.
525// An empty list accepts any host name. The list can contain host names
526// or PCRE patterns (without // delimiters, that will be added automatically).
527$config['trusted_host_patterns'] = array();
528
529// check client IP in session authorization
530$config['ip_check'] = false;
531
532// X-Frame-Options HTTP header value sent to prevent from Clickjacking.
533// Possible values: sameorigin|deny|allow-from <uri>.
534// Set to false in order to disable sending the header.
535$config['x_frame_options'] = 'sameorigin';
536
537// This key is used for encrypting purposes, like storing of imap password
538// in the session. For historical reasons it's called DES_key, but it's used
539// with any configured cipher_method (see below).
540// For the default cipher_method a required key length is 24 characters.
541$config['des_key'] = 'rcmail-!24ByteDESkey*Str';
542
543// Encryption algorithm. You can use any method supported by OpenSSL.
544// Default is set for backward compatibility to DES-EDE3-CBC,
545// but you can choose e.g. AES-256-CBC which we consider a better choice.
546$config['cipher_method'] = 'DES-EDE3-CBC';
547
548// Automatically add this domain to user names for login
549// Only for IMAP servers that require full e-mail addresses for login
550// Specify an array with 'host' => 'domain' values to support multiple hosts
551// Supported replacement variables:
552// %h - user's IMAP hostname
553// %n - hostname ($_SERVER['SERVER_NAME'])
554// %t - hostname without the first part
555// %d - domain (http hostname $_SERVER['HTTP_HOST'] without the first part)
556// %z - IMAP domain (IMAP hostname without the first part)
557// For example %n = mail.domain.tld, %t = domain.tld
558$config['username_domain'] = '';
559
560// Force domain configured in username_domain to be used for login.
561// Any domain in username will be replaced by username_domain.
562$config['username_domain_forced'] = false;
563
564// This domain will be used to form e-mail addresses of new users
565// Specify an array with 'host' => 'domain' values to support multiple hosts
566// Supported replacement variables:
567// %h - user's IMAP hostname
568// %n - http hostname ($_SERVER['SERVER_NAME'])
569// %d - domain (http hostname without the first part)
570// %z - IMAP domain (IMAP hostname without the first part)
571// For example %n = mail.domain.tld, %t = domain.tld
572$config['mail_domain'] = '';
573
574// Password character set, to change the password for user
575// authentication or for password change operations
576$config['password_charset'] = 'UTF-8';
577
578// How many seconds must pass between emails sent by a user
579$config['sendmail_delay'] = 0;
580
581// Message size limit. Note that SMTP server(s) may use a different value.
582// This limit is verified when user attaches files to a composed message.
583// Size in bytes (possible unit suffix: K, M, G)
584$config['max_message_size'] = '100M';
585
586// Maximum number of recipients per message (including To, Cc, Bcc).
587// Default: 0 (no limit)
588$config['max_recipients'] = 0;
589
590// Maximum number of recipients per message exluding Bcc header.
591// This is a soft limit, which means we only display a warning to the user.
592// Default: 5
593$config['max_disclosed_recipients'] = 5;
594
595// Maximum allowed number of members of an address group. Default: 0 (no limit)
596// If 'max_recipients' is set this value should be less or equal
597$config['max_group_members'] = 0;
598
599// Name your service. This is displayed on the login screen and in the window title
600$config['product_name'] = 'Roundcube Webmail';
601
602// Add this user-agent to message headers when sending
603$config['useragent'] = 'Roundcube Webmail/'.RCUBE_VERSION;
604
605// try to load host-specific configuration
606// see https://github.com/roundcube/roundcubemail/wiki/Configuration:-Multi-Domain-Setup
607// for more details
608$config['include_host_config'] = false;
609
610// path to a text file which will be added to each sent message
611// paths are relative to the Roundcube root folder
612$config['generic_message_footer'] = '';
613
614// path to a text file which will be added to each sent HTML message
615// paths are relative to the Roundcube root folder
616$config['generic_message_footer_html'] = '';
617
618// add a received header to outgoing mails containing the creators IP and hostname
619$config['http_received_header'] = false;
620
621// Whether or not to encrypt the IP address and the host name
622// these could, in some circles, be considered as sensitive information;
623// however, for the administrator, these could be invaluable help
624// when tracking down issues.
625$config['http_received_header_encrypt'] = false;
626
627// number of chars allowed for line when wrapping text.
628// text wrapping is done when composing/sending messages
629$config['line_length'] = 72;
630
631// send plaintext messages as format=flowed
632$config['send_format_flowed'] = true;
633
634// According to RFC2298, return receipt envelope sender address must be empty.
635// If this option is true, Roundcube will use user's identity as envelope sender for MDN responses.
636$config['mdn_use_from'] = false;
637
638// Set identities access level:
639// 0 - many identities with possibility to edit all params
640// 1 - many identities with possibility to edit all params but not email address
641// 2 - one identity with possibility to edit all params
642// 3 - one identity with possibility to edit all params but not email address
643// 4 - one identity with possibility to edit only signature
644$config['identities_level'] = 0;
645
646// Maximum size of uploaded image in kilobytes
647// Images (in html signatures) are stored in database as data URIs
648$config['identity_image_size'] = 64;
649
650// Mimetypes supported by the browser.
651// Attachments of these types will open in a preview window.
652// Either a comma-separated list or an array. Default list includes:
653// text/plain,text/html,
654// image/jpeg,image/gif,image/png,image/bmp,image/tiff,image/webp,
655// application/x-javascript,application/pdf,application/x-shockwave-flash
656$config['client_mimetypes'] = null;
657
658// Path to a local mime magic database file for PHPs finfo extension.
659// Set to null if the default path should be used.
660$config['mime_magic'] = null;
661
662// Absolute path to a local mime.types mapping table file.
663// This is used to derive mime-types from the filename extension or vice versa.
664// Such a file is usually part of the apache webserver. If you don't find a file named mime.types on your system,
665// download it from http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types
666$config['mime_types'] = null;
667
668// path to imagemagick identify binary (if not set we'll use Imagick or GD extensions)
669$config['im_identify_path'] = null;
670
671// path to imagemagick convert binary (if not set we'll use Imagick or GD extensions)
672$config['im_convert_path'] = null;
673
674// Size of thumbnails from image attachments displayed below the message content.
675// Note: whether images are displayed at all depends on the 'inline_images' option.
676// Set to 0 to display images in full size.
677$config['image_thumbnail_size'] = 240;
678
679// maximum size of uploaded contact photos in pixel
680$config['contact_photo_size'] = 160;
681
682// Enable DNS checking for e-mail address validation
683$config['email_dns_check'] = false;
684
685// Disables saving sent messages in Sent folder (like gmail) (Default: false)
686// Note: useful when SMTP server stores sent mail in user mailbox
687$config['no_save_sent_messages'] = false;
688
689// Improve system security by using special URL with security token.
690// This can be set to a number defining token length. Default: 16.
691// Warning: This requires http server configuration. Sample:
692// RewriteRule ^/roundcubemail/[a-zA-Z0-9]{16}/(.*) /roundcubemail/$1 [PT]
693// Alias /roundcubemail /var/www/roundcubemail/
694// Note: Use assets_path to not prevent the browser from caching assets
695$config['use_secure_urls'] = false;
696
697// Allows to define separate server/path for image/js/css files
698// Warning: If the domain is different cross-domain access to some
699// resources need to be allowed
700// Sample:
701// <FilesMatch ".(eot|ttf|woff)">
702// Header set Access-Control-Allow-Origin "*"
703// </FilesMatch>
704$config['assets_path'] = '';
705
706// While assets_path is for the browser, assets_dir informs
707// PHP code about the location of asset files in filesystem
708$config['assets_dir'] = '';
709
710
711// ----------------------------------
712// PLUGINS
713// ----------------------------------
714
715// List of active plugins (in plugins/ directory)
716$config['plugins'] = array();
717
718// ----------------------------------
719// USER INTERFACE
720// ----------------------------------
721
722// default messages sort column. Use empty value for default server's sorting,
723// or 'arrival', 'date', 'subject', 'from', 'to', 'fromto', 'size', 'cc'
724$config['message_sort_col'] = '';
725
726// default messages sort order
727$config['message_sort_order'] = 'DESC';
728
729// These cols are shown in the message list. Available cols are:
730// subject, from, to, fromto, cc, replyto, date, size, status, flag, attachment, priority
731$config['list_cols'] = array('subject', 'status', 'fromto', 'date', 'size', 'flag', 'attachment');
732
733// the default locale setting (leave empty for auto-detection)
734// RFC1766 formatted language name like en_US, de_DE, de_CH, fr_FR, pt_BR
735$config['language'] = null;
736
737// use this format for date display (date or strftime format)
738$config['date_format'] = 'Y-m-d';
739
740// give this choice of date formats to the user to select from
741// Note: do not use ambiguous formats like m/d/Y
742$config['date_formats'] = array('Y-m-d', 'Y/m/d', 'Y.m.d', 'd-m-Y', 'd/m/Y', 'd.m.Y', 'j.n.Y');
743
744// use this format for time display (date or strftime format)
745$config['time_format'] = 'H:i';
746
747// give this choice of time formats to the user to select from
748$config['time_formats'] = array('G:i', 'H:i', 'g:i a', 'h:i A');
749
750// use this format for short date display (derived from date_format and time_format)
751$config['date_short'] = 'D H:i';
752
753// use this format for detailed date/time formatting (derived from date_format and time_format)
754$config['date_long'] = 'Y-m-d H:i';
755
756// store draft message is this mailbox
757// leave blank if draft messages should not be stored
758// NOTE: Use folder names with namespace prefix (INBOX. on Courier-IMAP)
759$config['drafts_mbox'] = 'Drafts';
760
761// store spam messages in this mailbox
762// NOTE: Use folder names with namespace prefix (INBOX. on Courier-IMAP)
763$config['junk_mbox'] = 'Junk';
764
765// store sent message is this mailbox
766// leave blank if sent messages should not be stored
767// NOTE: Use folder names with namespace prefix (INBOX. on Courier-IMAP)
768$config['sent_mbox'] = 'Sent';
769
770// move messages to this folder when deleting them
771// leave blank if they should be deleted directly
772// NOTE: Use folder names with namespace prefix (INBOX. on Courier-IMAP)
773$config['trash_mbox'] = 'Trash';
774
775// automatically create the above listed default folders on user login
776$config['create_default_folders'] = false;
777
778// protect the default folders from renames, deletes, and subscription changes
779$config['protect_default_folders'] = true;
780
781// Disable localization of the default folder names listed above
782$config['show_real_foldernames'] = false;
783
784// if in your system 0 quota means no limit set this option to true
785$config['quota_zero_as_unlimited'] = false;
786
787// Make use of the built-in spell checker. It is based on GoogieSpell.
788$config['enable_spellcheck'] = true;
789
790// Enables spellchecker exceptions dictionary.
791// Setting it to 'shared' will make the dictionary shared by all users.
792$config['spellcheck_dictionary'] = false;
793
794// Set the spell checking engine. Possible values:
795// - 'googie' - the default (also used for connecting to Nox Spell Server, see 'spellcheck_uri' setting)
796// - 'pspell' - requires the PHP Pspell module and aspell installed
797// - 'enchant' - requires the PHP Enchant module
798// - 'atd' - install your own After the Deadline server or check with the people at http://www.afterthedeadline.com before using their API
799// Since Google shut down their public spell checking service, the default settings
800// connect to http://spell.roundcube.net which is a hosted service provided by Roundcube.
801// You can connect to any other googie-compliant service by setting 'spellcheck_uri' accordingly.
802$config['spellcheck_engine'] = 'googie';
803
804// For locally installed Nox Spell Server or After the Deadline services,
805// please specify the URI to call it.
806// Get Nox Spell Server from http://orangoo.com/labs/?page_id=72 or
807// the After the Deadline package from http://www.afterthedeadline.com.
808// Leave empty to use the public API of service.afterthedeadline.com
809$config['spellcheck_uri'] = '';
810
811// These languages can be selected for spell checking.
812// Configure as a PHP style hash array: array('en'=>'English', 'de'=>'Deutsch');
813// Leave empty for default set of available language.
814$config['spellcheck_languages'] = NULL;
815
816// Makes that words with all letters capitalized will be ignored (e.g. GOOGLE)
817$config['spellcheck_ignore_caps'] = false;
818
819// Makes that words with numbers will be ignored (e.g. g00gle)
820$config['spellcheck_ignore_nums'] = false;
821
822// Makes that words with symbols will be ignored (e.g. g@@gle)
823$config['spellcheck_ignore_syms'] = false;
824
825// Number of lines at the end of a message considered to contain the signature.
826// Increase this value if signatures are not properly detected and colored
827$config['sig_max_lines'] = 15;
828
829// don't let users set pagesize to more than this value if set
830$config['max_pagesize'] = 200;
831
832// Minimal value of user's 'refresh_interval' setting (in seconds)
833$config['min_refresh_interval'] = 60;
834
835// Specifies for how many seconds the Undo button will be available
836// after object delete action. Currently used with supporting address book sources.
837// Setting it to 0, disables the feature.
838$config['undo_timeout'] = 0;
839
840// A static list of canned responses which are immutable for the user
841$config['compose_responses_static'] = array(
842// array('name' => 'Canned Response 1', 'text' => 'Static Response One'),
843// array('name' => 'Canned Response 2', 'text' => 'Static Response Two'),
844);
845
846// List of HKP key servers for PGP public key lookups in Enigma/Mailvelope
847// Note: Lookup is client-side, so the server must support Cross-Origin Resource Sharing
848$config['keyservers'] = array('keys.openpgp.org');
849
850// ----------------------------------
851// ADDRESSBOOK SETTINGS
852// ----------------------------------
853
854// This indicates which type of address book to use. Possible choises:
855// 'sql' - built-in sql addressbook enabled (default),
856// '' - built-in sql addressbook disabled.
857// Still LDAP or plugin-added addressbooks will be available.
858// BC Note: The value can actually be anything except 'sql', it does not matter.
859$config['address_book_type'] = 'sql';
860
861// In order to enable public ldap search, configure an array like the Verisign
862// example further below. if you would like to test, simply uncomment the example.
863// Array key must contain only safe characters, ie. a-zA-Z0-9_
864$config['ldap_public'] = array();
865
866// If you are going to use LDAP for individual address books, you will need to
867// set 'user_specific' to true and use the variables to generate the appropriate DNs to access it.
868//
869// The recommended directory structure for LDAP is to store all the address book entries
870// under the users main entry, e.g.:
871//
872// o=root
873// ou=people
874// uid=user@domain
875// mail=contact@contactdomain
876//
877// So the base_dn would be uid=%fu,ou=people,o=root
878// The bind_dn would be the same as based_dn or some super user login.
879/*
880 * example config for Verisign directory
881 *
882$config['ldap_public']['Verisign'] = array(
883 'name' => 'Verisign.com',
884 // Replacement variables supported in host names:
885 // %h - user's IMAP hostname
886 // %n - hostname ($_SERVER['SERVER_NAME'])
887 // %t - hostname without the first part
888 // %d - domain (http hostname $_SERVER['HTTP_HOST'] without the first part)
889 // %z - IMAP domain (IMAP hostname without the first part)
890 // For example %n = mail.domain.tld, %t = domain.tld
891 'hosts' => array('directory.verisign.com'),
892 'port' => 389,
893 'use_tls' => false,
894 'ldap_version' => 3, // using LDAPv3
895 'network_timeout' => 10, // The timeout (in seconds) for connect + bind arrempts. This is only supported in PHP >= 5.3.0 with OpenLDAP 2.x
896 'user_specific' => false, // If true the base_dn, bind_dn and bind_pass default to the user's IMAP login.
897 // When 'user_specific' is enabled following variables can be used in base_dn/bind_dn config:
898 // %fu - The full username provided, assumes the username is an email
899 // address, uses the username_domain value if not an email address.
900 // %u - The username prior to the '@'.
901 // %d - The domain name after the '@'.
902 // %dc - The domain name hierarchal string e.g. "dc=test,dc=domain,dc=com"
903 // %dn - DN found by ldap search when search_filter/search_base_dn are used
904 'base_dn' => '',
905 'bind_dn' => '',
906 'bind_pass' => '',
907 // It's possible to bind for an individual address book
908 // The login name is used to search for the DN to bind with
909 'search_base_dn' => '',
910 'search_filter' => '', // e.g. '(&(objectClass=posixAccount)(uid=%u))'
911 // DN and password to bind as before searching for bind DN, if anonymous search is not allowed
912 'search_bind_dn' => '',
913 'search_bind_pw' => '',
914 // Base DN and filter used for resolving the user's domain root DN which feeds the %dc variables
915 // Leave empty to skip this lookup and derive the root DN from the username domain
916 'domain_base_dn' => '',
917 'domain_filter' => '',
918 // Optional map of replacement strings => attributes used when binding for an individual address book
919 'search_bind_attrib' => array(), // e.g. array('%udc' => 'ou')
920 // Default for %dn variable if search doesn't return DN value
921 'search_dn_default' => '',
922 // Optional authentication identifier to be used as SASL authorization proxy
923 // bind_dn need to be empty
924 'auth_cid' => '',
925 // SASL authentication method (for proxy auth), e.g. DIGEST-MD5
926 'auth_method' => '',
927 // Indicates if the addressbook shall be hidden from the list.
928 // With this option enabled you can still search/view contacts.
929 'hidden' => false,
930 // Indicates if the addressbook shall not list contacts but only allows searching.
931 'searchonly' => false,
932 // Indicates if we can write to the LDAP directory or not.
933 // If writable is true then these fields need to be populated:
934 // LDAP_Object_Classes, required_fields, LDAP_rdn
935 'writable' => false,
936 // To create a new contact these are the object classes to specify
937 // (or any other classes you wish to use).
938 'LDAP_Object_Classes' => array('top', 'inetOrgPerson'),
939 // The RDN field that is used for new entries, this field needs
940 // to be one of the search_fields, the base of base_dn is appended
941 // to the RDN to insert into the LDAP directory.
942 'LDAP_rdn' => 'cn',
943 // The required fields needed to build a new contact as required by
944 // the object classes (can include additional fields not required by the object classes).
945 'required_fields' => array('cn', 'sn', 'mail'),
946 'search_fields' => array('mail', 'cn'), // fields to search in
947 // mapping of contact fields to directory attributes
948 // 1. for every attribute one can specify the number of values (limit) allowed.
949 // default is 1, a wildcard * means unlimited
950 // 2. another possible parameter is separator character for composite fields
951 // 3. it's possible to define field format for write operations, e.g. for date fields
952 // example: 'birthday:date[YmdHis\\Z]'
953 'fieldmap' => array(
954 // Roundcube => LDAP:limit
955 'name' => 'cn',
956 'surname' => 'sn',
957 'firstname' => 'givenName',
958 'jobtitle' => 'title',
959 'email' => 'mail:*',
960 'phone:home' => 'homePhone',
961 'phone:work' => 'telephoneNumber',
962 'phone:mobile' => 'mobile',
963 'phone:pager' => 'pager',
964 'phone:workfax' => 'facsimileTelephoneNumber',
965 'street' => 'street',
966 'zipcode' => 'postalCode',
967 'region' => 'st',
968 'locality' => 'l',
969 // if you country is a complex object, you need to configure 'sub_fields' below
970 'country' => 'c',
971 'organization' => 'o',
972 'department' => 'ou',
973 'jobtitle' => 'title',
974 'notes' => 'description',
975 'photo' => 'jpegPhoto',
976 // these currently don't work:
977 // 'manager' => 'manager',
978 // 'assistant' => 'secretary',
979 ),
980 // Map of contact sub-objects (attribute name => objectClass(es)), e.g. 'c' => 'country'
981 'sub_fields' => array(),
982 // Generate values for the following LDAP attributes automatically when creating a new record
983 'autovalues' => array(
984 // 'uid' => 'md5(microtime())', // You may specify PHP code snippets which are then eval'ed
985 // 'mail' => '{givenname}.{sn}@mydomain.com', // or composite strings with placeholders for existing attributes
986 ),
987 'sort' => 'cn', // The field to sort the listing by.
988 'scope' => 'sub', // search mode: sub|base|list
989 'filter' => '(objectClass=inetOrgPerson)', // used for basic listing (if not empty) and will be &'d with search queries. example: status=act
990 'fuzzy_search' => true, // server allows wildcard search
991 'vlv' => false, // Enable Virtual List View to more efficiently fetch paginated data (if server supports it)
992 'vlv_search' => false, // Use Virtual List View functions for autocompletion searches (if server supports it)
993 '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
994 'config_root_dn' => 'cn=config', // Root DN to search config entries (e.g. vlv indexes)
995 'sizelimit' => '0', // Enables you to limit the count of entries fetched. Setting this to 0 means no limit.
996 'timelimit' => '0', // Sets the number of seconds how long is spend on the search. Setting this to 0 means no limit.
997 'referrals' => false, // Sets the LDAP_OPT_REFERRALS option. Mostly used in multi-domain Active Directory setups
998 'dereference' => 0, // Sets the LDAP_OPT_DEREF option. One of: LDAP_DEREF_NEVER, LDAP_DEREF_SEARCHING, LDAP_DEREF_FINDING, LDAP_DEREF_ALWAYS
999 // Used where addressbook contains aliases to objects elsewhere in the LDAP tree.
1000
1001 // definition for contact groups (uncomment if no groups are supported)
1002 // for the groups base_dn, the user replacements %fu, %u, %d and %dc work as for base_dn (see above)
1003 // if the groups base_dn is empty, the contact base_dn is used for the groups as well
1004 // -> in this case, assure that groups and contacts are separated due to the concernig filters!
1005 'groups' => array(
1006 'base_dn' => '',
1007 'scope' => 'sub', // Search mode: sub|base|list
1008 'filter' => '(objectClass=groupOfNames)',
1009 'object_classes' => array('top', 'groupOfNames'), // Object classes to be assigned to new groups
1010 'member_attr' => 'member', // Name of the default member attribute, e.g. uniqueMember
1011 'name_attr' => 'cn', // Attribute to be used as group name
1012 'email_attr' => 'mail', // Group email address attribute (e.g. for mailing lists)
1013 'member_filter' => '(objectclass=*)', // Optional filter to use when querying for group members
1014 'vlv' => false, // Use VLV controls to list groups
1015 'class_member_attr' => array( // Mapping of group object class to member attribute used in these objects
1016 'groupofnames' => 'member',
1017 'groupofuniquenames' => 'uniquemember'
1018 ),
1019 ),
1020 // this configuration replaces the regular groups listing in the directory tree with
1021 // a hard-coded list of groups, each listing entries with the configured base DN and filter.
1022 // if the 'groups' option from above is set, it'll be shown as the first entry with the name 'Groups'
1023 'group_filters' => array(
1024 'departments' => array(
1025 'name' => 'Company Departments',
1026 'scope' => 'list',
1027 'base_dn' => 'ou=Groups,dc=mydomain,dc=com',
1028 'filter' => '(|(objectclass=groupofuniquenames)(objectclass=groupofurls))',
1029 'name_attr' => 'cn',
1030 ),
1031 'customers' => array(
1032 'name' => 'Customers',
1033 'scope' => 'sub',
1034 'base_dn' => 'ou=Customers,dc=mydomain,dc=com',
1035 'filter' => '(objectClass=inetOrgPerson)',
1036 'name_attr' => 'sn',
1037 ),
1038 ),
1039);
1040*/
1041
1042// An ordered array of the ids of the addressbooks that should be searched
1043// when populating address autocomplete fields server-side. ex: array('sql','Verisign');
1044$config['autocomplete_addressbooks'] = array('sql');
1045
1046// The minimum number of characters required to be typed in an autocomplete field
1047// before address books will be searched. Most useful for LDAP directories that
1048// may need to do lengthy results building given overly-broad searches
1049$config['autocomplete_min_length'] = 1;
1050
1051// Number of parallel autocomplete requests.
1052// If there's more than one address book, n parallel (async) requests will be created,
1053// where each request will search in one address book. By default (0), all address
1054// books are searched in one request.
1055$config['autocomplete_threads'] = 0;
1056
1057// Max. numer of entries in autocomplete popup. Default: 15.
1058$config['autocomplete_max'] = 15;
1059
1060// show address fields in this order
1061// available placeholders: {street}, {locality}, {zipcode}, {country}, {region}
1062$config['address_template'] = '{street}<br/>{locality} {zipcode}<br/>{country} {region}';
1063
1064// Matching mode for addressbook search (including autocompletion)
1065// 0 - partial (*abc*), default
1066// 1 - strict (abc)
1067// 2 - prefix (abc*)
1068// Note: For LDAP sources fuzzy_search must be enabled to use 'partial' or 'prefix' mode
1069$config['addressbook_search_mode'] = 0;
1070
1071// List of fields used on contacts list and for autocompletion searches
1072// Warning: These are field names not LDAP attributes (see 'fieldmap' setting)!
1073$config['contactlist_fields'] = array('name', 'firstname', 'surname', 'email');
1074
1075// Template of contact entry on the autocompletion list.
1076// You can use contact fields as: name, email, organization, department, etc.
1077// See program/steps/addressbook/func.inc for a list
1078$config['contact_search_name'] = '{name} <{email}>';
1079
1080// ----------------------------------
1081// USER PREFERENCES
1082// ----------------------------------
1083
1084// Use this charset as fallback for message decoding
1085$config['default_charset'] = 'ISO-8859-1';
1086
1087// Skin name: folder from skins/
1088$config['skin'] = 'elastic';
1089
1090// Limit skins available for the user.
1091// Note: When not empty, it should include the default skin set in 'skin' option.
1092$config['skins_allowed'] = array();
1093
1094// Enables using standard browser windows (that can be handled as tabs)
1095// instead of popup windows
1096$config['standard_windows'] = false;
1097
1098// show up to X items in messages list view
1099$config['mail_pagesize'] = 50;
1100
1101// show up to X items in contacts list view
1102$config['addressbook_pagesize'] = 50;
1103
1104// sort contacts by this col (preferably either one of name, firstname, surname)
1105$config['addressbook_sort_col'] = 'surname';
1106
1107// The way how contact names are displayed in the list.
1108// 0: prefix firstname middlename surname suffix (only if display name is not set)
1109// 1: firstname middlename surname
1110// 2: surname firstname middlename
1111// 3: surname, firstname middlename
1112$config['addressbook_name_listing'] = 0;
1113
1114// use this timezone to display date/time
1115// valid timezone identifiers are listed here: php.net/manual/en/timezones.php
1116// 'auto' will use the browser's timezone settings
1117$config['timezone'] = 'auto';
1118
1119// prefer displaying HTML messages
1120$config['prefer_html'] = true;
1121
1122// display remote resources (inline images, styles)
1123// 0 - Never, always ask
1124// 1 - Ask if sender is not in address book
1125// 2 - Always allow
1126$config['show_images'] = 0;
1127
1128// open messages in new window
1129$config['message_extwin'] = false;
1130
1131// open message compose form in new window
1132$config['compose_extwin'] = false;
1133
1134// compose html formatted messages by default
1135// 0 - never,
1136// 1 - always,
1137// 2 - on reply to HTML message,
1138// 3 - on forward or reply to HTML message
1139// 4 - always, except when replying to plain text message
1140$config['htmleditor'] = 0;
1141
1142// save copies of compose messages in the browser's local storage
1143// for recovery in case of browser crashes and session timeout.
1144$config['compose_save_localstorage'] = true;
1145
1146// show pretty dates as standard
1147$config['prettydate'] = true;
1148
1149// save compose message every 300 seconds (5min)
1150$config['draft_autosave'] = 300;
1151
1152// Interface layout. Default: 'widescreen'.
1153// 'widescreen' - three columns
1154// 'desktop' - two columns, preview on bottom
1155// 'list' - two columns, no preview
1156$config['layout'] = 'widescreen';
1157
1158// Mark as read when viewing a message (delay in seconds)
1159// Set to -1 if messages should not be marked as read
1160$config['mail_read_time'] = 0;
1161
1162// Clear Trash on logout
1163$config['logout_purge'] = false;
1164
1165// Compact INBOX on logout
1166$config['logout_expunge'] = false;
1167
1168// Display attached images below the message body
1169$config['inline_images'] = true;
1170
1171// Encoding of long/non-ascii attachment names:
1172// 0 - Full RFC 2231 compatible
1173// 1 - RFC 2047 for 'name' and RFC 2231 for 'filename' parameter (Thunderbird's default)
1174// 2 - Full 2047 compatible
1175$config['mime_param_folding'] = 1;
1176
1177// Set true if deleted messages should not be displayed
1178// This will make the application run slower
1179$config['skip_deleted'] = false;
1180
1181// Set true to Mark deleted messages as read as well as deleted
1182// False means that a message's read status is not affected by marking it as deleted
1183$config['read_when_deleted'] = true;
1184
1185// Set to true to never delete messages immediately
1186// Use 'Purge' to remove messages marked as deleted
1187$config['flag_for_deletion'] = false;
1188
1189// Default interval for auto-refresh requests (in seconds)
1190// These are requests for system state updates e.g. checking for new messages, etc.
1191// Setting it to 0 disables the feature.
1192$config['refresh_interval'] = 60;
1193
1194// If true all folders will be checked for recent messages
1195$config['check_all_folders'] = false;
1196
1197// If true, after message/contact delete/move, the next message/contact will be displayed
1198$config['display_next'] = true;
1199
1200// Default messages listing mode. One of 'threads' or 'list'.
1201$config['default_list_mode'] = 'list';
1202
1203// 0 - Do not expand threads
1204// 1 - Expand all threads automatically
1205// 2 - Expand only threads with unread messages
1206$config['autoexpand_threads'] = 0;
1207
1208// When replying:
1209// -1 - don't cite the original message
1210// 0 - place cursor below the original message
1211// 1 - place cursor above original message (top posting)
1212// 2 - place cursor above original message (top posting), but do not indent the quote
1213$config['reply_mode'] = 0;
1214
1215// When replying strip original signature from message
1216$config['strip_existing_sig'] = true;
1217
1218// Show signature:
1219// 0 - Never
1220// 1 - Always
1221// 2 - New messages only
1222// 3 - Forwards and Replies only
1223$config['show_sig'] = 1;
1224
1225// By default the signature is placed depending on cursor position (reply_mode).
1226// Sometimes it might be convenient to start the reply on top but keep
1227// the signature below the quoted text (sig_below = true).
1228$config['sig_below'] = false;
1229
1230// Enables adding of standard separator to the signature
1231$config['sig_separator'] = true;
1232
1233// Use MIME encoding (quoted-printable) for 8bit characters in message body
1234$config['force_7bit'] = false;
1235
1236// Defaults of the search field configuration.
1237// The array can contain a per-folder list of header fields which should be considered when searching
1238// The entry with key '*' stands for all folders which do not have a specific list set.
1239// Please note that folder names should to be in sync with $config['*_mbox'] options
1240$config['search_mods'] = null; // Example: array('*' => array('subject'=>1, 'from'=>1), 'Sent' => array('subject'=>1, 'to'=>1));
1241
1242// Defaults of the addressbook search field configuration.
1243$config['addressbook_search_mods'] = null; // Example: array('name'=>1, 'firstname'=>1, 'surname'=>1, 'email'=>1, '*'=>1);
1244
1245// Directly delete messages in Junk instead of moving to Trash
1246$config['delete_junk'] = false;
1247
1248// Behavior if a received message requests a message delivery notification (read receipt)
1249// 0 = ask the user, 1 = send automatically, 2 = ignore (never send or ask)
1250// 3 = send automatically if sender is in addressbook, otherwise ask the user
1251// 4 = send automatically if sender is in addressbook, otherwise ignore
1252$config['mdn_requests'] = 0;
1253
1254// Return receipt checkbox default state
1255$config['mdn_default'] = 0;
1256
1257// Delivery Status Notification checkbox default state
1258// Note: This can be used only if smtp_server is non-empty
1259$config['dsn_default'] = 0;
1260
1261// Place replies in the folder of the message being replied to
1262$config['reply_same_folder'] = false;
1263
1264// Sets default mode of Forward feature to "forward as attachment"
1265$config['forward_attachment'] = false;
1266
1267// Defines address book (internal index) to which new contacts will be added
1268// By default it is the first writeable addressbook.
1269// Note: Use '0' for built-in address book.
1270$config['default_addressbook'] = null;
1271
1272// Enables spell checking before sending a message.
1273$config['spellcheck_before_send'] = false;
1274
1275// Skip alternative email addresses in autocompletion (show one address per contact)
1276$config['autocomplete_single'] = false;
1277
1278// Default font for composed HTML message.
1279// Supported values: Andale Mono, Arial, Arial Black, Book Antiqua, Courier New,
1280// Georgia, Helvetica, Impact, Tahoma, Terminal, Times New Roman, Trebuchet MS, Verdana
1281$config['default_font'] = 'Verdana';
1282
1283// Default font size for composed HTML message.
1284// Supported sizes: 8pt, 10pt, 12pt, 14pt, 18pt, 24pt, 36pt
1285$config['default_font_size'] = '10pt';
1286
1287// Enables display of email address with name instead of a name (and address in title)
1288$config['message_show_email'] = false;
1289
1290// Default behavior of Reply-All button:
1291// 0 - Reply-All always
1292// 1 - Reply-List if mailing list is detected
1293$config['reply_all_mode'] = 0;
1294