From ab0b51a1fef87bcc643c3aaf2e635c811b28ccd8 Mon Sep 17 00:00:00 2001 From: alecpl <alec@alec.pl> Date: Tue, 15 Feb 2011 06:10:59 -0500 Subject: [PATCH] - Use only one from IMAP authentication methods to prevent login delays (1487784) --- config/main.inc.php.dist | 218 +++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 175 insertions(+), 43 deletions(-) diff --git a/config/main.inc.php.dist b/config/main.inc.php.dist index b1da159..36c5277 100644 --- a/config/main.inc.php.dist +++ b/config/main.inc.php.dist @@ -4,8 +4,8 @@ +-----------------------------------------------------------------------+ | Main configuration file | | | - | This file is part of the RoundCube Webmail client | - | Copyright (C) 2005-2010, RoundCube Dev. - Switzerland | + | This file is part of the Roundcube Webmail client | + | Copyright (C) 2005-2010, The Roundcube Dev Team | | Licensed under the GNU GPL | | | +-----------------------------------------------------------------------+ @@ -61,27 +61,52 @@ // leave blank to show a textbox at login, give a list of hosts // to display a pulldown menu or set one host as string. // To use SSL/TLS connection, enter hostname with prefix ssl:// or tls:// +// Supported replacement variables: +// %n - http hostname ($_SERVER['SERVER_NAME']) +// %d - domain (http hostname without the first part) +// For example %n = mail.domain.tld, %d = domain.tld $rcmail_config['default_host'] = ''; // TCP port used for IMAP connections $rcmail_config['default_port'] = 143; -// IMAP auth type. Can be "auth" (CRAM-MD5), "plain" (PLAIN) or "check" to auto detect. -// Optional, defaults to "check" +// IMAP AUTH type (DIGEST-MD5, CRAM-MD5, LOGIN, PLAIN or empty to use +// best server supported one) $rcmail_config['imap_auth_type'] = null; -// If you know your imap's root directory and its folder delimiter, -// you can specify them here. Otherwise they will be determined automatically. -$rcmail_config['imap_root'] = null; +// If you know your imap's folder delimiter, you can specify it here. +// Otherwise it will be determined automatically $rcmail_config['imap_delimiter'] = null; + +// If IMAP server doesn't support NAMESPACE extension, but you're +// using shared folders or personal root folder is non-empty, you'll need to +// set these options. All can be strings or arrays of strings. +// Folders need to be ended with directory separator, e.g. "INBOX." +// (special directory "~" is an exception to this rule) +// These can be used also to overwrite server's namespaces +$rcmail_config['imap_ns_personal'] = null; +$rcmail_config['imap_ns_other'] = null; +$rcmail_config['imap_ns_shared'] = null; // By default IMAP capabilities are readed after connection to IMAP server // In some cases, e.g. when using IMAP proxy, there's a need to refresh the list // after login. Set to True if you've got this case. $rcmail_config['imap_force_caps'] = false; +// By default list of subscribed folders is determined using LIST-EXTENDED +// extension if available. Some servers (dovecot 1.x) returns wrong results +// for shared namespaces in this case. http://trac.roundcube.net/ticket/1486225 +// Enable this option to force LSUB command usage instead. +$rcmail_config['imap_force_lsub'] = false; + // IMAP connection timeout, in seconds. Default: 0 (no limit) $rcmail_config['imap_timeout'] = 0; + +// Optional IMAP authentication identifier to be used as authorization proxy +$rcmail_config['imap_auth_cid'] = null; + +// Optional IMAP authentication password to be used for imap_auth_cid +$rcmail_config['imap_auth_pw'] = null; // ---------------------------------- // SMTP @@ -90,23 +115,34 @@ // SMTP server host (for sending mails). // To use SSL/TLS connection, enter hostname with prefix ssl:// or tls:// // If left blank, the PHP mail() function is used -// Use %h variable as replacement for user's IMAP hostname +// Supported replacement variables: +// %h - user's IMAP hostname +// %n - http hostname ($_SERVER['SERVER_NAME']) +// %d - domain (http hostname without the first part) +// %z - IMAP domain (IMAP hostname without the first part) +// For example %n = mail.domain.tld, %d = domain.tld $rcmail_config['smtp_server'] = ''; // SMTP port (default is 25; 465 for SSL) $rcmail_config['smtp_port'] = 25; -// SMTP username (if required) if you use %u as the username RoundCube +// SMTP username (if required) if you use %u as the username Roundcube // will use the current username for login $rcmail_config['smtp_user'] = ''; -// SMTP password (if required) if you use %p as the password RoundCube +// SMTP password (if required) if you use %p as the password Roundcube // will use the current user's password for login $rcmail_config['smtp_pass'] = ''; // SMTP AUTH type (DIGEST-MD5, CRAM-MD5, LOGIN, PLAIN or empty to use // best server supported one) $rcmail_config['smtp_auth_type'] = ''; + +// Optional SMTP authentication identifier to be used as authorization proxy +$rcmail_config['smtp_auth_cid'] = null; + +// Optional SMTP authentication password to be used for smtp_auth_cid +$rcmail_config['smtp_auth_pw'] = null; // SMTP HELO host // Hostname to give to the remote server for SMTP 'HELO' or 'EHLO' messages @@ -145,7 +181,20 @@ // set the port for the ssl connection as value of this option if it differs from the default 443 $rcmail_config['force_https'] = false; -// automatically create a new RoundCube user when log-in the first time. +// tell PHP that it should work as under secure connection +// even if it doesn't recognize it as secure ($_SERVER['HTTPS'] is not set) +// e.g. when you're running Roundcube behind a https proxy +$rcmail_config['use_https'] = false; + +// Allow browser-autocompletion on login form. +// 0 - disabled, 1 - username and host only, 2 - username, host, password +$rcmail_config['login_autocomplete'] = 0; + +// If users authentication is not case sensitive this must be enabled. +// You can also use it to force conversion of logins to lower case. +$rcmail_config['login_lc'] = false; + +// automatically create a new Roundcube user when log-in the first time. // a new user will be created once the IMAP login succeeds. // set to false if only registered users can use this service $rcmail_config['auto_create_user'] = true; @@ -157,12 +206,14 @@ // must be greater than 'keep_alive'/60 $rcmail_config['session_lifetime'] = 10; +// session domain: .example.org +$rcmail_config['session_domain'] = ''; + // check client IP in session athorization $rcmail_config['ip_check'] = false; -// Use an additional frequently changing cookie to athenticate user sessions. -// There have been problems reported with this feature. -$rcmail_config['double_auth'] = false; +// check referer of incoming requests +$rcmail_config['referer_check'] = false; // this key is used to encrypt the users imap password which is stored // in the session record (and the client cookie if remember password is enabled). @@ -172,10 +223,22 @@ // Automatically add this domain to user names for login // Only for IMAP servers that require full e-mail addresses for login // Specify an array with 'host' => 'domain' values to support multiple hosts +// Supported replacement variables: +// %h - user's IMAP hostname +// %n - http hostname ($_SERVER['SERVER_NAME']) +// %d - domain (http hostname without the first part) +// %z - IMAP domain (IMAP hostname without the first part) +// For example %n = mail.domain.tld, %d = domain.tld $rcmail_config['username_domain'] = ''; // This domain will be used to form e-mail addresses of new users // Specify an array with 'host' => 'domain' values to support multiple hosts +// Supported replacement variables: +// %h - user's IMAP hostname +// %n - http hostname ($_SERVER['SERVER_NAME']) +// %d - domain (http hostname without the first part) +// %z - IMAP domain (IMAP hostname without the first part) +// For example %n = mail.domain.tld, %d = domain.tld $rcmail_config['mail_domain'] = ''; // Password charset. @@ -204,8 +267,12 @@ $rcmail_config['include_host_config'] = false; // path to a text file which will be added to each sent message -// paths are relative to the RoundCube root folder +// paths are relative to the Roundcube root folder $rcmail_config['generic_message_footer'] = ''; + +// path to a text file which will be added to each sent HTML message +// paths are relative to the Roundcube root folder +$rcmail_config['generic_message_footer_html'] = ''; // add a received header to outgoing mails containing the creators IP and hostname $rcmail_config['http_received_header'] = false; @@ -216,8 +283,8 @@ // when tracking down issues. $rcmail_config['http_received_header_encrypt'] = false; -// this string is used as a delimiter for message headers when sending -// leave empty for auto-detection +// This string is used as a delimiter for message headers when sending +// a message via mail() function. Leave empty for auto-detection $rcmail_config['mail_header_delimiter'] = NULL; // number of chars allowed for line when wrapping text. @@ -226,9 +293,6 @@ // send plaintext messages as format=flowed $rcmail_config['send_format_flowed'] = true; - -// session domain: .example.org -$rcmail_config['session_domain'] = ''; // don't allow these settings to be overriden by the user $rcmail_config['dont_override'] = array(); @@ -242,6 +306,15 @@ // mime magic database $rcmail_config['mime_magic'] = '/usr/share/misc/magic'; + +// path to imagemagick identify binary +$rcmail_config['im_identify_path'] = null; + +// path to imagemagick convert binary +$rcmail_config['im_convert_path'] = null; + +// maximum size of uploaded contact photos in pixel +$rcmail_config['contact_photo_size'] = 160; // Enable DNS checking for e-mail address validation $rcmail_config['email_dns_check'] = false; @@ -265,8 +338,8 @@ $rcmail_config['message_sort_order'] = 'DESC'; // These cols are shown in the message list. Available cols are: -// subject, from, to, cc, replyto, date, size, flag, attachment -$rcmail_config['list_cols'] = array('subject', 'from', 'date', 'size', 'flag', 'attachment'); +// subject, from, to, cc, replyto, date, size, status, flag, attachment +$rcmail_config['list_cols'] = array('subject', 'status', 'from', 'date', 'size', 'flag', 'attachment'); // the default locale setting (leave empty for auto-detection) // RFC1766 formatted language name like en_US, de_DE, de_CH, fr_FR, pt_BR @@ -280,6 +353,9 @@ // use this format for today's date display (date or strftime format) $rcmail_config['date_today'] = 'H:i'; + +// use this format for date display without time (date or strftime format) +$rcmail_config['date_format'] = 'Y-m-d'; // store draft message is this mailbox // leave blank if draft messages should not be stored @@ -308,10 +384,6 @@ // if in your system 0 quota means no limit set this option to true $rcmail_config['quota_zero_as_unlimited'] = false; - -// Behavior if a received message requests a message delivery notification (read receipt) -// 0 = ask the user, 1 = send automatically, 2 = ignore (never send or ask) -$rcmail_config['mdn_requests'] = 0; // Make use of the built-in spell checker. It is based on GoogieSpell. // Since Google only accepts connections over https your PHP installatation @@ -355,7 +427,6 @@ // example further below. if you would like to test, simply uncomment the example. $rcmail_config['ldap_public'] = array(); -// // If you are going to use LDAP for individual address books, you will need to // set 'user_specific' to true and use the variables to generate the appropriate DNs to access it. // @@ -374,41 +445,87 @@ * $rcmail_config['ldap_public']['Verisign'] = array( 'name' => 'Verisign.com', + // Replacement variables supported in host names: + // %h - user's IMAP hostname + // %n - http hostname ($_SERVER['SERVER_NAME']) + // %d - domain (http hostname without the first part) + // %z - IMAP domain (IMAP hostname without the first part) + // For example %n = mail.domain.tld, %d = domain.tld 'hosts' => array('directory.verisign.com'), 'port' => 389, - 'use_tls' => false, + 'use_tls' => false, + 'ldap_version' => 3, // using LDAPv3 'user_specific' => false, // If true the base_dn, bind_dn and bind_pass default to the user's IMAP login. // %fu - The full username provided, assumes the username is an email // address, uses the username_domain value if not an email address. // %u - The username prior to the '@'. // %d - The domain name after the '@'. + // %dc - The domain name hierarchal string e.g. "dc=test,dc=domain,dc=com" + // %dn - DN found by ldap search when search_filter/search_base_dn are used 'base_dn' => '', 'bind_dn' => '', 'bind_pass' => '', - 'writable' => false, // Indicates if we can write to the LDAP directory or not. + // It's possible to bind for an individual address book + // The login name is used to search for the DN to bind with + 'search_base_dn' => '', + 'search_filter' => '', // e.g. '(&(objectClass=posixAccount)(uid=%u))' + // Indicates if we can write to the LDAP directory or not. // If writable is true then these fields need to be populated: // LDAP_Object_Classes, required_fields, LDAP_rdn - 'LDAP_Object_Classes' => array("top", "inetOrgPerson"), // To create a new contact these are the object classes to specify (or any other classes you wish to use). - 'required_fields' => array("cn", "sn", "mail"), // The required fields needed to build a new contact as required by the object classes (can include additional fields not required by the object classes). - 'LDAP_rdn' => 'mail', // The RDN field that is used for new entries, this field needs to be one of the search_fields, the base of base_dn is appended to the RDN to insert into the LDAP directory. - 'ldap_version' => 3, // using LDAPv3 - 'search_fields' => array('mail', 'cn'), // fields to search in - 'name_field' => 'cn', // this field represents the contact's name - 'email_field' => 'mail', // this field represents the contact's e-mail - 'surname_field' => 'sn', // this field represents the contact's last name - 'firstname_field' => 'gn', // this field represents the contact's first name + 'writable' => false, + // To create a new contact these are the object classes to specify + // (or any other classes you wish to use). + 'LDAP_Object_Classes' => array('top', 'inetOrgPerson'), + // The RDN field that is used for new entries, this field needs + // to be one of the search_fields, the base of base_dn is appended + // to the RDN to insert into the LDAP directory. + 'LDAP_rdn' => 'mail', + // The required fields needed to build a new contact as required by + // the object classes (can include additional fields not required by the object classes). + 'required_fields' => array('cn', 'sn', 'mail'), + 'search_fields' => array('mail', 'cn'), // fields to search in + // mapping of contact fields to directory attributes + 'fieldmap' => array( + // Roundcube => LDAP + 'name' => 'cn', + 'surname' => 'sn', + 'firstname' => 'givenName', + 'email' => 'mail', + 'phone:home' => 'homePhone', + 'phone:work' => 'telephoneNumber', + 'phone:mobile' => 'mobile', + 'street' => 'street', + 'zipcode' => 'postalCode', + 'locality' => 'l', + 'country' => 'c', + 'organization' => 'o', + ), 'sort' => 'cn', // The field to sort the listing by. 'scope' => 'sub', // search mode: sub|base|list 'filter' => '', // used for basic listing (if not empty) and will be &'d with search queries. example: status=act - 'fuzzy_search' => true // server allows wildcard search - 'sizelimit' => '0', // Enables you to limit the count of entries fetched. Setting this to 0 means no limit. - 'timelimit' => '0', // Sets the number of seconds how long is spend on the search. Setting this to 0 means no limit. + 'fuzzy_search' => true, // server allows wildcard search + 'sizelimit' => '0', // Enables you to limit the count of entries fetched. Setting this to 0 means no limit. + 'timelimit' => '0', // Sets the number of seconds how long is spend on the search. Setting this to 0 means no limit. + // definition for groups, set to false if no groups are supported + 'groups' => array( + 'base_dn' => 'ou=groups,ou=rcabook,dc=localhost', + 'filter' => '(objectClass=groupOfNames)', + ), ); */ // An ordered array of the ids of the addressbooks that should be searched // when populating address autocomplete fields server-side. ex: array('sql','Verisign'); $rcmail_config['autocomplete_addressbooks'] = array('sql'); + +// The minimum number of characters required to be typed in an autocomplete field +// before address books will be searched. Most useful for LDAP directories that +// may need to do lengthy results building given overly-broad searches +$rcmail_config['autocomplete_min_length'] = 1; + +// show address fields in this order +// available placeholders: {street}, {locality}, {zipcode}, {country}, {region} +$rcmail_config['address_template'] = '{street}<br/>{locality} {zipcode}<br/>{country} {region}'; // ---------------------------------- // USER PREFERENCES @@ -439,7 +556,8 @@ $rcmail_config['show_images'] = 0; // compose html formatted messages by default -$rcmail_config['htmleditor'] = false; +// 0 - never, 1 - always, 2 - on reply to HTML message only +$rcmail_config['htmleditor'] = 0; // show pretty dates as standard $rcmail_config['prettydate'] = true; @@ -530,5 +648,19 @@ // when user is over quota and Trash is included in the quota. $rcmail_config['delete_always'] = false; +// Behavior if a received message requests a message delivery notification (read receipt) +// 0 = ask the user, 1 = send automatically, 2 = ignore (never send or ask) +// 3 = send automatically if sender is in addressbook, otherwise ask the user +// 4 = send automatically if sender is in addressbook, otherwise ignore +$rcmail_config['mdn_requests'] = 0; + +// Return receipt checkbox default state +$rcmail_config['mdn_default'] = 0; + +// Delivery Status Notification checkbox default state +$rcmail_config['dsn_default'] = 0; + +// Place replies in the folder of the message being replied to +$rcmail_config['reply_same_folder'] = false; + // end of config file -?> -- Gitblit v1.9.1