- Основные термины
- Введение
- Структура таблиц в базе данных
- Агент доставки почты Dovecot
- Агент пересылки почты Exim
- Веб интерфейс Roundcube
- Заключение
- Список литературы
- Комментарии
5. Веб интерфейс Roundcube
Roundcube — это клиент для работы с электронной почтой с веб-интерфейсом, написанный на языке PHP с использованием CSS и XHTML и технологии AJAX. Roundсube предоставляет возможность работы с почтовыми ящиками по протоколам IMAP и SMTP. Для хранения своей служебной информации может использовать любую поддерживаемую базу данных (PostgreSQL, MySQL и т.д.). Позволяет подключать адресную книгу, хранящуюся в LDAP, а также возможно ведение своей адресной книги для каждого пользователя отдельно.
В данной конфигурации Roundcube используется, как основное средство доступа к почтовым ящикам и управления ими для пользователей почтовой системы. Roundcube имеет интерфейс для написания собственных плагинов, расширяющих его функциональность, что может оказаться очень полезным при необходимости. Также хорошим моментом является то, что в нем имеется плагин для управления фильтрами Sieve, совместимый с Dovecot.
5.1 Установка
Установка Roundcube ничем не отличается от установки другого софта из портов. При необходимости его можно установить руками в удобное для вас место, скачав дистрибутив с официального сайта. В системе портов он располагается здесь — /usr/ports/mail/roundcube.
После установки Roundcube необходимо создать базу данных, создать пользователя и дать ему права на созданную ранее базу данных. Далее необходимо создать структуру таблиц в базе данных, взять ее для своей базы данных можно в папке SQL (смотреть файл db.initial.sql, где db - ваша СУБД).
5.2 Настройка
Конфигурационные файлы Roundcube находятся в папке "config", относительно корня установки. Настройка Roundcube заключается в правке двух конфигурационных файлов: main.inc.php — основной конфигурационный файл и db.inc.php — здесь указываются параметры доступа к базе данных. Стоит отметить, что при использовании некоторых плагинов, может потребоваться правка конфигурационных файлов этих плагинов.
В файле db.inc.php я поправил всего одну строчку:- $rcmail_config['db_dsnw'] = 'driver://user:pass@localhost/dbname';
- <?php
- /*
- +-----------------------------------------------------------------------+
- | Main configuration file |
- | |
- | This file is part of the Roundcube Webmail client |
- | Copyright (C) 2005-2011, The Roundcube Dev Team |
- | |
- | Licensed under the GNU General Public License version 3 or |
- | any later version with exceptions for skins & plugins. |
- | See the README file for a full license statement. |
- | |
- +-----------------------------------------------------------------------+
- */
- $rcmail_config = array();
- // ----------------------------------
- // LOGGING/DEBUGGING
- // ----------------------------------
- // system error reporting: 1 = log; 2 = report (not implemented yet), 4 = show, 8 = trace
- $rcmail_config['debug_level'] = 1;
- // log driver: 'syslog' or 'file'.
- $rcmail_config['log_driver'] = 'file';
- // date format for log entries
- // (read http://php.net/manual/en/function.date.php for all format characters)
- $rcmail_config['log_date_format'] = 'd-M-Y H:i:s O';
- // Syslog ident string to use, if using the 'syslog' log driver.
- $rcmail_config['syslog_id'] = 'roundcube';
- // Syslog facility to use, if using the 'syslog' log driver.
- // For possible values see installer or http://php.net/manual/en/function.openlog.php
- $rcmail_config['syslog_facility'] = LOG_USER;
- // Log sent messages to <log_dir>/sendmail or to syslog
- $rcmail_config['smtp_log'] = true;
- // Log successful logins to <log_dir>/userlogins or to syslog
- $rcmail_config['log_logins'] = false;
- // Log session authentication errors to <log_dir>/session or to syslog
- $rcmail_config['log_session'] = false;
- // Log SQL queries to <log_dir>/sql or to syslog
- $rcmail_config['sql_debug'] = false;
- // Log IMAP conversation to <log_dir>/imap or to syslog
- $rcmail_config['imap_debug'] = false;
- // Log LDAP conversation to <log_dir>/ldap or to syslog
- $rcmail_config['ldap_debug'] = false;
- // Log SMTP conversation to <log_dir>/smtp or to syslog
- $rcmail_config['smtp_debug'] = false;
- // ----------------------------------
- // IMAP
- // ----------------------------------
- // the mail host chosen to perform the log-in
- // 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)
- // %s - domain name after the '@' from e-mail address provided at login screen
- // For example %n = mail.domain.tld, %d = domain.tld
- $rcmail_config['default_host'] = 'localhost';
- // TCP port used for IMAP connections
- $rcmail_config['default_port'] = 143;
- // IMAP AUTH type (DIGEST-MD5, CRAM-MD5, LOGIN, PLAIN or empty to use
- // best server supported one)
- $rcmail_config['imap_auth_type'] = 'PLAIN';
- // 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;
- // Some server configurations (e.g. Courier) doesn't list folders in all namespaces
- // Enable this option to force listing of folders in all namespaces
- $rcmail_config['imap_force_ns'] = 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;
- // Type of IMAP indexes cache. Supported values: 'db', 'apc' and 'memcache'.
- $rcmail_config['imap_cache'] = false;
- // Enables messages cache. Only 'db' cache is supported.
- $rcmail_config['messages_cache'] = false;
- // ----------------------------------
- // SMTP
- // ----------------------------------
- // 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
- // 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'] = 'localhost';
- // SMTP port (default is 25; use 587 for STARTTLS or 465 for the
- // deprecated SSL over SMTP (aka SMTPS))
- $rcmail_config['smtp_port'] = 25;
- // 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
- // 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'] = 'PLAIN';
- // 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
- // Leave this blank and you will get the server variable 'server_name' or
- // localhost if that isn't defined.
- $rcmail_config['smtp_helo_host'] = '';
- // SMTP connection timeout, in seconds. Default: 0 (no limit)
- $rcmail_config['smtp_timeout'] = 0;
- // ----------------------------------
- // SYSTEM
- // ----------------------------------
- // THIS OPTION WILL ALLOW THE INSTALLER TO RUN AND CAN EXPOSE SENSITIVE CONFIG DATA.
- // ONLY ENABLE IT IF YOU'RE REALLY SURE WHAT YOU'RE DOING!
- $rcmail_config['enable_installer'] = false;
- // provide an URL where a user can get support for this Roundcube installation
- // PLEASE DO NOT LINK TO THE ROUNDCUBE.NET WEBSITE HERE!
- $rcmail_config['support_url'] = 'http://www.info-x.org/forum/index.html';
- // replace Roundcube logo with this image
- // specify an URL relative to the document root of this Roundcube installation
- $rcmail_config['skin_logo'] = null;
- // 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;
- // use this folder to store log files (must be writeable for apache user)
- // This is used by the 'file' log driver.
- $rcmail_config['log_dir'] = 'logs/';
- // use this folder to store temp files (must be writeable for apache user)
- $rcmail_config['temp_dir'] = 'temp/';
- // lifetime of message cache
- // possible units: s, m, h, d, w
- $rcmail_config['message_cache_lifetime'] = '10d';
- // enforce connections over https
- // with this option enabled, all non-secure connections will be redirected.
- // set the port for the ssl connection as value of this option if it differs from the default 443
- $rcmail_config['force_https'] = true;
- // 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
- // this option is mutually exclusive to 'force_https' and only either one of them should be set to true.
- $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;
- // Forces conversion of logins to lower case.
- // 0 - disabled, 1 - only domain part, 2 - domain and local part.
- // If users authentication is not case-sensitive this must be enabled.
- // After enabling it all user records need to be updated, e.g. with query:
- // UPDATE users SET username = LOWER(username);
- $rcmail_config['login_lc'] = 2;
- // Includes should be interpreted as PHP files
- $rcmail_config['skin_include_php'] = false;
- // display software version on login screen
- $rcmail_config['display_version'] = false;
- // Session lifetime in minutes
- // must be greater than 'keep_alive'/60
- $rcmail_config['session_lifetime'] = 10;
- // session domain: .example.org
- $rcmail_config['session_domain'] = '';
- // session name. Default: 'roundcube_sessid'
- $rcmail_config['session_name'] = null;
- // Backend to use for session storage. Can either be 'db' (default) or 'memcache'
- // If set to memcache, a list of servers need to be specified in 'memcache_hosts'
- // Make sure the Memcache extension (http://pecl.php.net/package/memcache) version >= 2.0.0 is installed
- $rcmail_config['session_storage'] = 'db';
- // Use these hosts for accessing memcached
- // Define any number of hosts in the form of hostname:port or unix:///path/to/sock.file
- $rcmail_config['memcache_hosts'] = null; // e.g. array( 'localhost:11211', '192.168.1.12:11211', 'unix:///var/tmp/memcached.sock' );
- // check client IP in session athorization
- $rcmail_config['ip_check'] = true;
- // check referer of incoming requests
- $rcmail_config['referer_check'] = false;
- // X-Frame-Options HTTP header value sent to prevent from Clickjacking.
- // Possible values: sameorigin|deny. Set to false in order to disable sending them
- $rcmail_config['x_frame_options'] = 'sameorigin';
- // 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).
- // please provide a string of exactly 24 chars.
- $rcmail_config['des_key'] = 'rcmail-!24ByteDESkey*Str';
- // 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.
- // Use it if your authentication backend doesn't support UTF-8.
- // Defaults to ISO-8859-1 for backward compatibility
- $rcmail_config['password_charset'] = 'ISO-8859-1';
- // How many seconds must pass between emails sent by a user
- $rcmail_config['sendmail_delay'] = 0;
- // Maximum number of recipients per message. Default: 0 (no limit)
- $rcmail_config['max_recipients'] = 10;
- // Maximum allowednumber of members of an address group. Default: 0 (no limit)
- // If 'max_recipients' is set this value should be less or equal
- $rcmail_config['max_group_members'] = 0;
- // add this user-agent to message headers when sending
- $rcmail_config['useragent'] = 'Roundcube Webmail/'.RCMAIL_VERSION;
- // use this name to compose page titles
- $rcmail_config['product_name'] = 'www.info-x.org';
- // try to load host-specific configuration
- // see http://trac.roundcube.net/wiki/Howto_Config for more details
- $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
- $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;
- // Whether or not to encrypt the IP address and the host name
- // these could, in some circles, be considered as sensitive information;
- // however, for the administrator, these could be invaluable help
- // when tracking down issues.
- $rcmail_config['http_received_header_encrypt'] = false;
- // 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.
- // text wrapping is done when composing/sending messages
- $rcmail_config['line_length'] = 72;
- // send plaintext messages as format=flowed
- $rcmail_config['send_format_flowed'] = true;
- // don't allow these settings to be overriden by the user
- $rcmail_config['dont_override'] = array();
- // Set identities access level:
- // 0 - many identities with possibility to edit all params
- // 1 - many identities with possibility to edit all params but not email address
- // 2 - one identity with possibility to edit all params
- // 3 - one identity with possibility to edit all params but not email address
- $rcmail_config['identities_level'] = 0;
- // Mimetypes supported by the browser.
- // attachments of these types will open in a preview window
- // either a comma-separated list or an array: 'text/plain,text/html,text/xml,image/jpeg,image/gif,image/png,application/pdf'
- $rcmail_config['client_mimetypes'] = null; # null == default
- // 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;
- // ----------------------------------
- // PLUGINS
- // ----------------------------------
- // List of active plugins (in plugins/ directory)
- $rcmail_config['plugins'] = array('emoticons',
- 'jqueryui',
- 'managesieve',
- 'markasjunk',
- 'password',
- 'userinfo');
- // ----------------------------------
- // USER INTERFACE
- // ----------------------------------
- // default messages sort column. Use empty value for default server's sorting,
- // or 'arrival', 'date', 'subject', 'from', 'to', 'fromto', 'size', 'cc'
- $rcmail_config['message_sort_col'] = 'date';
- // default messages sort order
- $rcmail_config['message_sort_order'] = 'DESC';
- // These cols are shown in the message list. Available cols are:
- // subject, from, to, fromto, cc, replyto, date, size, status, flag, attachment, 'priority'
- $rcmail_config['list_cols'] = array('subject', 'status', 'fromto', '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
- $rcmail_config['language'] = 'ru_RU';
- // use this format for date display (date or strftime format)
- $rcmail_config['date_format'] = 'Y-m-d';
- // give this choice of date formats to the user to select from
- $rcmail_config['date_formats'] = array('Y-m-d', 'd-m-Y', 'Y/m/d', 'm/d/Y', 'd/m/Y', 'd.m.Y', 'j.n.Y');
- // use this format for time display (date or strftime format)
- $rcmail_config['time_format'] = 'H:i';
- // give this choice of time formats to the user to select from
- $rcmail_config['time_formats'] = array('G:i', 'H:i', 'g:i a', 'h:i A');
- // use this format for short date display (derived from date_format and time_format)
- $rcmail_config['date_short'] = 'D H:i';
- // use this format for detailed date/time formatting (derived from date_format and time_format)
- $rcmail_config['date_long'] = 'Y-m-d H:i';
- // store draft message is this mailbox
- // leave blank if draft messages should not be stored
- // NOTE: Use folder names with namespace prefix (INBOX. on Courier-IMAP)
- $rcmail_config['drafts_mbox'] = 'Drafts';
- // store spam messages in this mailbox
- // NOTE: Use folder names with namespace prefix (INBOX. on Courier-IMAP)
- $rcmail_config['junk_mbox'] = 'Junk';
- // store sent message is this mailbox
- // leave blank if sent messages should not be stored
- // NOTE: Use folder names with namespace prefix (INBOX. on Courier-IMAP)
- $rcmail_config['sent_mbox'] = 'Sent';
- // move messages to this folder when deleting them
- // leave blank if they should be deleted directly
- // NOTE: Use folder names with namespace prefix (INBOX. on Courier-IMAP)
- $rcmail_config['trash_mbox'] = 'Trash';
- // display these folders separately in the mailbox list.
- // these folders will also be displayed with localized names
- // NOTE: Use folder names with namespace prefix (INBOX. on Courier-IMAP)
- $rcmail_config['default_folders'] = array('INBOX', 'Drafts', 'Sent', 'Junk', 'Trash');
- // automatically create the above listed default folders on first login
- $rcmail_config['create_default_folders'] = false;
- // protect the default folders from renames, deletes, and subscription changes
- $rcmail_config['protect_default_folders'] = true;
- // if in your system 0 quota means no limit set this option to true
- $rcmail_config['quota_zero_as_unlimited'] = false;
- // Make use of the built-in spell checker. It is based on GoogieSpell.
- // Since Google only accepts connections over https your PHP installatation
- // requires to be compiled with Open SSL support
- $rcmail_config['enable_spellcheck'] = true;
- // Enables spellchecker exceptions dictionary.
- // Setting it to 'shared' will make the dictionary shared by all users.
- $rcmail_config['spellcheck_dictionary'] = false;
- // Set the spell checking engine. 'googie' is the default. 'pspell' is also available,
- // but requires the Pspell extensions. When using Nox Spell Server, also set 'googie' here.
- $rcmail_config['spellcheck_engine'] = 'googie';
- // For a locally installed Nox Spell Server, please specify the URI to call it.
- // Get Nox Spell Server from http://orangoo.com/labs/?page_id=72
- // Leave empty to use the Google spell checking service, what means
- // that the message content will be sent to Google in order to check spelling
- $rcmail_config['spellcheck_uri'] = '';
- // These languages can be selected for spell checking.
- // Configure as a PHP style hash array: array('en'=>'English', 'de'=>'Deutsch');
- // Leave empty for default set of available language.
- $rcmail_config['spellcheck_languages'] = array('en' => 'English', 'ru' => 'Russian');
- // Makes that words with all letters capitalized will be ignored (e.g. GOOGLE)
- $rcmail_config['spellcheck_ignore_caps'] = false;
- // Makes that words with numbers will be ignored (e.g. g00gle)
- $rcmail_config['spellcheck_ignore_nums'] = false;
- // Makes that words with symbols will be ignored (e.g. g@@gle)
- $rcmail_config['spellcheck_ignore_syms'] = false;
- // Use this char/string to separate recipients when composing a new message
- $rcmail_config['recipients_separator'] = ',';
- // don't let users set pagesize to more than this value if set
- $rcmail_config['max_pagesize'] = 200;
- // Minimal value of user's 'keep_alive' setting (in seconds)
- // Must be less than 'session_lifetime'
- $rcmail_config['min_keep_alive'] = 60;
- // Enables files upload indicator. Requires APC installed and enabled apc.rfc1867 option.
- // By default refresh time is set to 1 second. You can set this value to true
- // or any integer value indicating number of seconds.
- $rcmail_config['upload_progress'] = false;
- // Specifies for how many seconds the Undo button will be available
- // after object delete action. Currently used with supporting address book sources.
- // Setting it to 0, disables the feature.
- $rcmail_config['undo_timeout'] = 0;
- // ----------------------------------
- // ADDRESSBOOK SETTINGS
- // ----------------------------------
- // This indicates which type of address book to use. Possible choises:
- // 'sql' (default) and 'ldap'.
- // If set to 'ldap' then it will look at using the first writable LDAP
- // address book as the primary address book and it will not display the
- // SQL address book in the 'Address Book' view.
- $rcmail_config['address_book_type'] = 'sql';
- // In order to enable public ldap search, configure an array like the Verisign
- // example further below. if you would like to test, simply uncomment the example.
- // Array key must contain only safe characters, ie. a-zA-Z0-9_
- $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.
- //
- // The recommended directory structure for LDAP is to store all the address book entries
- // under the users main entry, e.g.:
- //
- // o=root
- // ou=people
- // uid=user@domain
- // mail=contact@contactdomain
- //
- // So the base_dn would be uid=%fu,ou=people,o=root
- // The bind_dn would be the same as based_dn or some super user login.
- /*
- * example config for Verisign directory
- *
- $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,
- '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' => '',
- // 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))'
- // DN and password to bind as before searching for bind DN, if anonymous search is not allowed
- 'search_bind_dn' => '',
- 'search_bind_pw' => '',
- // Default for %dn variable if search doesn't return DN value
- 'search_dn_default' => '',
- // Optional authentication identifier to be used as SASL authorization proxy
- // bind_dn need to be empty
- 'auth_cid' => '',
- // SASL authentication method (for proxy auth), e.g. DIGEST-MD5
- 'auth_method' => '',
- // Indicates if the addressbook shall be hidden from the list.
- // With this option enabled you can still search/view contacts.
- 'hidden' => false,
- // Indicates if the addressbook shall not list contacts but only allows searching.
- 'searchonly' => false,
- // 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
- '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' => 'cn',
- // 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
- // for every attribute one can specify the number of values (limit) allowed.
- // default is 1, a wildcard * means unlimited
- 'fieldmap' => array(
- // Roundcube => LDAP:limit
- 'name' => 'cn',
- 'surname' => 'sn',
- 'firstname' => 'givenName',
- 'title' => 'title',
- 'email' => 'mail:*',
- 'phone:home' => 'homePhone',
- 'phone:work' => 'telephoneNumber',
- 'phone:mobile' => 'mobile',
- 'phone:pager' => 'pager',
- 'street' => 'street',
- 'zipcode' => 'postalCode',
- 'region' => 'st',
- 'locality' => 'l',
- // if you uncomment country, you need to modify 'sub_fields' above
- // 'country' => 'c',
- 'department' => 'departmentNumber',
- 'notes' => 'description',
- // these currently don't work:
- // 'phone:workfax' => 'facsimileTelephoneNumber',
- // 'photo' => 'jpegPhoto',
- // 'organization' => 'o',
- // 'manager' => 'manager',
- // 'assistant' => 'secretary',
- ),
- // Map of contact sub-objects (attribute name => objectClass(es)), e.g. 'c' => 'country'
- 'sub_fields' => array(),
- 'sort' => 'cn', // The field to sort the listing by.
- 'scope' => 'sub', // search mode: sub|base|list
- 'filter' => '(objectClass=inetOrgPerson)', // used for basic listing (if not empty) and will be &'d with search queries. example: status=act
- 'fuzzy_search' => true, // server allows wildcard search
- 'vlv' => false, // Enable Virtual List View to more efficiently fetch paginated data (if server supports it)
- '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
- '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.
- 'referrals' => true|false, // Sets the LDAP_OPT_REFERRALS option. Mostly used in multi-domain Active Directory setups
- // definition for contact groups (uncomment if no groups are supported)
- // for the groups base_dn, the user replacements %fu, %u, $d and %dc work as for base_dn (see above)
- // if the groups base_dn is empty, the contact base_dn is used for the groups as well
- // -> in this case, assure that groups and contacts are separated due to the concernig filters!
- 'groups' => array(
- 'base_dn' => '',
- 'scope' => 'sub', // search mode: sub|base|list
- 'filter' => '(objectClass=groupOfNames)',
- 'object_classes' => array("top", "groupOfNames"),
- 'member_attr' => 'member', // name of the member attribute, e.g. uniqueMember
- 'name_attr' => 'cn', // attribute to be used as group name
- ),
- );
- */
- // 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;
- // Number of parallel autocomplete requests.
- // If there's more than one address book, n parallel (async) requests will be created,
- // where each request will search in one address book. By default (0), all address
- // books are searched in one request.
- $rcmail_config['autocomplete_threads'] = 0;
- // Max. numer of entries in autocomplete popup. Default: 15.
- $rcmail_config['autocomplete_max'] = 15;
- // show address fields in this order
- // available placeholders: {street}, {locality}, {zipcode}, {country}, {region}
- $rcmail_config['address_template'] = '{street}<br/>{locality} {zipcode}<br/>{country} {region}';
- // Matching mode for addressbook search (including autocompletion)
- // 0 - partial (*abc*), default
- // 1 - strict (abc)
- // 2 - prefix (abc*)
- // Note: For LDAP sources fuzzy_search must be enabled to use 'partial' or 'prefix' mode
- $rcmail_config['addressbook_search_mode'] = 0;
- // ----------------------------------
- // USER PREFERENCES
- // ----------------------------------
- // Use this charset as fallback for message decoding
- $rcmail_config['default_charset'] = 'ISO-8859-1';
- // skin name: folder from skins/
- $rcmail_config['skin'] = 'larry';
- // show up to X items in messages list view
- $rcmail_config['mail_pagesize'] = 50;
- // show up to X items in contacts list view
- $rcmail_config['addressbook_pagesize'] = 50;
- // sort contacts by this col (preferably either one of name, firstname, surname)
- $rcmail_config['addressbook_sort_col'] = 'surname';
- // the way how contact names are displayed in the list
- // 0: display name
- // 1: (prefix) firstname middlename surname (suffix)
- // 2: (prefix) surname firstname middlename (suffix)
- // 3: (prefix) surname, firstname middlename (suffix)
- $rcmail_config['addressbook_name_listing'] = 0;
- // use this timezone to display date/time
- // valid timezone identifers are listed here: php.net/manual/en/timezones.php
- // 'auto' will use the browser's timezone settings
- $rcmail_config['timezone'] = 'auto';
- // prefer displaying HTML messages
- $rcmail_config['prefer_html'] = true;
- // display remote inline images
- // 0 - Never, always ask
- // 1 - Ask if sender is not in address book
- // 2 - Always show inline images
- $rcmail_config['show_images'] = 0;
- // compose html formatted messages by default
- // 0 - never, 1 - always, 2 - on reply to HTML message only
- $rcmail_config['htmleditor'] = 0;
- // show pretty dates as standard
- $rcmail_config['prettydate'] = true;
- // save compose message every 300 seconds (5min)
- $rcmail_config['draft_autosave'] = 300;
- // default setting if preview pane is enabled
- $rcmail_config['preview_pane'] = false;
- // Mark as read when viewed in preview pane (delay in seconds)
- // Set to -1 if messages in preview pane should not be marked as read
- $rcmail_config['preview_pane_mark_read'] = 0;
- // Clear Trash on logout
- $rcmail_config['logout_purge'] = false;
- // Compact INBOX on logout
- $rcmail_config['logout_expunge'] = false;
- // Display attached images below the message body
- $rcmail_config['inline_images'] = true;
- // Encoding of long/non-ascii attachment names:
- // 0 - Full RFC 2231 compatible
- // 1 - RFC 2047 for 'name' and RFC 2231 for 'filename' parameter (Thunderbird's default)
- // 2 - Full 2047 compatible
- $rcmail_config['mime_param_folding'] = 1;
- // Set true if deleted messages should not be displayed
- // This will make the application run slower
- $rcmail_config['skip_deleted'] = false;
- // Set true to Mark deleted messages as read as well as deleted
- // False means that a message's read status is not affected by marking it as deleted
- $rcmail_config['read_when_deleted'] = true;
- // Set to true to never delete messages immediately
- // Use 'Purge' to remove messages marked as deleted
- $rcmail_config['flag_for_deletion'] = false;
- // Default interval for keep-alive/check-recent requests (in seconds)
- // Must be greater than or equal to 'min_keep_alive' and less than 'session_lifetime'
- $rcmail_config['keep_alive'] = 60;
- // If true all folders will be checked for recent messages
- $rcmail_config['check_all_folders'] = false;
- // If true, after message delete/move, the next message will be displayed
- $rcmail_config['display_next'] = false;
- // 0 - Do not expand threads
- // 1 - Expand all threads automatically
- // 2 - Expand only threads with unread messages
- $rcmail_config['autoexpand_threads'] = 0;
- // When replying place cursor above original message (top posting)
- $rcmail_config['top_posting'] = false;
- // When replying strip original signature from message
- $rcmail_config['strip_existing_sig'] = true;
- // Show signature:
- // 0 - Never
- // 1 - Always
- // 2 - New messages only
- // 3 - Forwards and Replies only
- $rcmail_config['show_sig'] = 1;
- // When replying or forwarding place sender's signature above existing message
- $rcmail_config['sig_above'] = false;
- // Use MIME encoding (quoted-printable) for 8bit characters in message body
- $rcmail_config['force_7bit'] = false;
- // Defaults of the search field configuration.
- // The array can contain a per-folder list of header fields which should be considered when searching
- // The entry with key '*' stands for all folders which do not have a specific list set.
- // Please note that folder names should to be in sync with $rcmail_config['default_folders']
- $rcmail_config['search_mods'] = null; // Example: array('*' => array('subject'=>1, 'from'=>1), 'Sent' => array('subject'=>1, 'to'=>1));
- // Defaults of the addressbook search field configuration.
- $rcmail_config['addressbook_search_mods'] = null; // Example: array('name'=>1, 'firstname'=>1, 'surname'=>1, 'email'=>1, '*'=>1);
- // 'Delete always'
- // This setting reflects if mail should be always deleted
- // when moving to Trash fails. This is necessary in some setups
- // when user is over quota and Trash is included in the quota.
- $rcmail_config['delete_always'] = false;
- // Directly delete messages in Junk instead of moving to Trash
- $rcmail_config['delete_junk'] = 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;
- // Sets default mode of Forward feature to "forward as attachment"
- $rcmail_config['forward_attachment'] = false;
- // Defines address book (internal index) to which new contacts will be added
- // By default it is the first writeable addressbook.
- // Note: Use '0' for built-in address book.
- $rcmail_config['default_addressbook'] = null;
- // Enables spell checking before sending a message.
- $rcmail_config['spellcheck_before_send'] = false;
- // Skip alternative email addresses in autocompletion (show one address per contact)
- $rcmail_config['autocomplete_single'] = false;
- // Default font for composed HTML message.
- // Supported values: Andale Mono, Arial, Arial Black, Book Antiqua, Courier New,
- // Georgia, Helvetica, Impact, Tahoma, Terminal, Times New Roman, Trebuchet MS, Verdana
- $rcmail_config['default_font'] = '';
- // end of config file
- <?php
- // managesieve server port
- $rcmail_config['managesieve_port'] = 4190;
- // managesieve server address, default is localhost.
- // Replacement variables supported in host name:
- // %h - user's IMAP hostname
- // %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['managesieve_host'] = 'localhost';
- // authentication method. Can be CRAM-MD5, DIGEST-MD5, PLAIN, LOGIN, EXTERNAL
- // or none. Optional, defaults to best method supported by server.
- $rcmail_config['managesieve_auth_type'] = 'PLAIN';
- // Optional managesieve authentication identifier to be used as authorization proxy.
- // Authenticate as a different user but act on behalf of the logged in user.
- // Works with PLAIN and DIGEST-MD5 auth.
- $rcmail_config['managesieve_auth_cid'] = null;
- // Optional managesieve authentication password to be used for imap_auth_cid
- $rcmail_config['managesieve_auth_pw'] = null;
- // use or not TLS for managesieve server connection
- // it's because I've problems with TLS and dovecot's managesieve plugin
- // and it's not needed on localhost
- $rcmail_config['managesieve_usetls'] = false;
- // default contents of filters script (eg. default spam filter)
- $rcmail_config['managesieve_default'] = '/etc/dovecot/sieve/global';
- // The name of the script which will be used when there's no user script
- $rcmail_config['managesieve_script_name'] = 'managesieve';
- // Sieve RFC says that we should use UTF-8 endcoding for mailbox names,
- // but some implementations does not covert UTF-8 to modified UTF-7.
- // Defaults to UTF7-IMAP
- $rcmail_config['managesieve_mbox_encoding'] = 'UTF-8';
- // I need this because my dovecot (with listescape plugin) uses
- // ':' delimiter, but creates folders with dot delimiter
- $rcmail_config['managesieve_replace_delimiter'] = '';
- // disabled sieve extensions (body, copy, date, editheader, encoded-character,
- // envelope, environment, ereject, fileinto, ihave, imap4flags, index,
- // mailbox, mboxmetadata, regex, reject, relational, servermetadata,
- // spamtest, spamtestplus, subaddress, vacation, variables, virustest, etc.
- // Note: not all extensions are implemented
- $rcmail_config['managesieve_disabled_extensions'] = array();
- // Enables debugging of conversation with sieve server. Logs it into <log_dir>/sieve
- $rcmail_config['managesieve_debug'] = false;
- // Enables features described in http://wiki.kolab.org/KEP:14
- $rcmail_config['managesieve_kolab_master'] = false;
- // Script name extension used for scripts including. Dovecot uses '.sieve',
- // Cyrus uses '.siv'. Doesn't matter if you have managesieve_kolab_master disabled.
- $rcmail_config['managesieve_filename_extension'] = '.sieve';
- // List of reserved script names (without extension).
- // Scripts listed here will be not presented to the user.
- $rcmail_config['managesieve_filename_exceptions'] = array();
- ?>
- <?php
- // Password Plugin options
- // -----------------------
- // A driver to use for password change. Default: "sql".
- // See README file for list of supported driver names.
- $rcmail_config['password_driver'] = 'sql';
- // Determine whether current password is required to change password.
- // Default: false.
- $rcmail_config['password_confirm_current'] = true;
- // Require the new password to be a certain length.
- // set to blank to allow passwords of any length
- $rcmail_config['password_minimum_length'] = 3;
- // Require the new password to contain a letter and punctuation character
- // Change to false to remove this check.
- $rcmail_config['password_require_nonalpha'] = false;
- // Enables logging of password changes into logs/password
- $rcmail_config['password_log'] = false;
- // Comma-separated list of login exceptions for which password change
- // will be not available (no Password tab in Settings)
- $rcmail_config['password_login_exceptions'] = null;
- // SQL Driver options
- // ------------------
- // PEAR database DSN for performing the query. By default
- // Roundcube DB settings are used.
- $rcmail_config['password_db_dsn'] = '';
- // The SQL query used to change the password.
- // The query can contain the following macros that will be expanded as follows:
- // %p is replaced with the plaintext new password
- // %c is replaced with the crypt version of the new password, MD5 if available
- // otherwise DES.
- // %D is replaced with the dovecotpw-crypted version of the new password
- // %o is replaced with the password before the change
- // %n is replaced with the hashed version of the new password
- // %q is replaced with the hashed password before the change
- // %h is replaced with the imap host (from the session info)
- // %u is replaced with the username (from the session info)
- // %l is replaced with the local part of the username
- // (in case the username is an email address)
- // %d is replaced with the domain part of the username
- // (in case the username is an email address)
- // Escaping of macros is handled by this module.
- // Default: "SELECT update_passwd(%c, %u)"
- //$rcmail_config['password_query'] = 'SELECT update_passwd(%c, %u)';
- $rcmail_config['password_query'] = '
- UPDATE "users_tb" SET
- "passwd" = MD5(%p)
- WHERE
- "username" = %l AND
- "passwd" = MD5(%o) AND
- "domain_id" = (SELECT "id" FROM "domains_tb" WHERE "domainname" = %d LIMIT 1);
- ';
- // By default domains in variables are using unicode.
- // Enable this option to use punycoded names
- $rcmail_config['password_idn_ascii'] = false;
- // Path for dovecotpw (if not in $PATH)
- // $rcmail_config['password_dovecotpw'] = '/usr/local/sbin/dovecotpw';
- // Dovecot method (dovecotpw -s 'method')
- $rcmail_config['password_dovecotpw_method'] = 'CRAM-MD5';
- // Enables use of password with crypt method prefix in %D, e.g. {MD5}$1$LUiMYWqx$fEkg/ggr/L6Mb2X7be4i1/
- $rcmail_config['password_dovecotpw_with_method'] = false;
- // Using a password hash for %n and %q variables.
- // Determine which hashing algorithm should be used to generate
- // the hashed new and current password for using them within the
- // SQL query. Requires PHP's 'hash' extension.
- $rcmail_config['password_hash_algorithm'] = 'sha1';
- // You can also decide whether the hash should be provided
- // as hex string or in base64 encoded format.
- $rcmail_config['password_hash_base64'] = false;
- // Poppassd Driver options
- // -----------------------
- // The host which changes the password
- $rcmail_config['password_pop_host'] = 'localhost';
- // TCP port used for poppassd connections
- $rcmail_config['password_pop_port'] = 106;
- // SASL Driver options
- // -------------------
- // Additional arguments for the saslpasswd2 call
- $rcmail_config['password_saslpasswd_args'] = '';
- // LDAP and LDAP_SIMPLE Driver options
- // -----------------------------------
- // LDAP server name to connect to.
- // You can provide one or several hosts in an array in which case the hosts are tried from left to right.
- // Exemple: array('ldap1.exemple.com', 'ldap2.exemple.com');
- // Default: 'localhost'
- $rcmail_config['password_ldap_host'] = 'localhost';
- // LDAP server port to connect to
- // Default: '389'
- $rcmail_config['password_ldap_port'] = '389';
- // TLS is started after connecting
- // Using TLS for password modification is recommanded.
- // Default: false
- $rcmail_config['password_ldap_starttls'] = false;
- // LDAP version
- // Default: '3'
- $rcmail_config['password_ldap_version'] = '3';
- // LDAP base name (root directory)
- // Exemple: 'dc=exemple,dc=com'
- $rcmail_config['password_ldap_basedn'] = 'dc=exemple,dc=com';
- // LDAP connection method
- // There is two connection method for changing a user's LDAP password.
- // 'user': use user credential (recommanded, require password_confirm_current=true)
- // 'admin': use admin credential (this mode require password_ldap_adminDN and password_ldap_adminPW)
- // Default: 'user'
- $rcmail_config['password_ldap_method'] = 'user';
- // LDAP Admin DN
- // Used only in admin connection mode
- // Default: null
- $rcmail_config['password_ldap_adminDN'] = null;
- // LDAP Admin Password
- // Used only in admin connection mode
- // Default: null
- $rcmail_config['password_ldap_adminPW'] = null;
- // LDAP user DN mask
- // The user's DN is mandatory and as we only have his login,
- // we need to re-create his DN using a mask
- // '%login' will be replaced by the current roundcube user's login
- // '%name' will be replaced by the current roundcube user's name part
- // '%domain' will be replaced by the current roundcube user's domain part
- // '%dc' will be replaced by domain name hierarchal string e.g. "dc=test,dc=domain,dc=com"
- // Exemple: 'uid=%login,ou=people,dc=exemple,dc=com'
- $rcmail_config['password_ldap_userDN_mask'] = 'uid=%login,ou=people,dc=exemple,dc=com';
- // LDAP search DN
- // The DN roundcube should bind with to find out user's DN
- // based on his login. Note that you should comment out the default
- // password_ldap_userDN_mask setting for this to take effect.
- // Use this if you cannot specify a general template for user DN with
- // password_ldap_userDN_mask. You need to perform a search based on
- // users login to find his DN instead. A common reason might be that
- // your users are placed under different ou's like engineering or
- // sales which cannot be derived from their login only.
- $rcmail_config['password_ldap_searchDN'] = 'cn=roundcube,ou=services,dc=example,dc=com';
- // LDAP search password
- // If password_ldap_searchDN is set, the password to use for
- // binding to search for user's DN. Note that you should comment out the default
- // password_ldap_userDN_mask setting for this to take effect.
- // Warning: Be sure to set approperiate permissions on this file so this password
- // is only accesible to roundcube and don't forget to restrict roundcube's access to
- // your directory as much as possible using ACLs. Should this password be compromised
- // you want to minimize the damage.
- $rcmail_config['password_ldap_searchPW'] = 'secret';
- // LDAP search base
- // If password_ldap_searchDN is set, the base to search in using the filter below.
- // Note that you should comment out the default password_ldap_userDN_mask setting
- // for this to take effect.
- $rcmail_config['password_ldap_search_base'] = 'ou=people,dc=example,dc=com';
- // LDAP search filter
- // If password_ldap_searchDN is set, the filter to use when
- // searching for user's DN. Note that you should comment out the default
- // password_ldap_userDN_mask setting for this to take effect.
- // '%login' will be replaced by the current roundcube user's login
- // '%name' will be replaced by the current roundcube user's name part
- // '%domain' will be replaced by the current roundcube user's domain part
- // '%dc' will be replaced by domain name hierarchal string e.g. "dc=test,dc=domain,dc=com"
- // Example: '(uid=%login)'
- // Example: '(&(objectClass=posixAccount)(uid=%login))'
- $rcmail_config['password_ldap_search_filter'] = '(uid=%login)';
- // LDAP password hash type
- // Standard LDAP encryption type which must be one of: crypt,
- // ext_des, md5crypt, blowfish, md5, sha, smd5, ssha, or clear.
- // Please note that most encodage types require external libraries
- // to be included in your PHP installation, see function hashPassword in drivers/ldap.php for more info.
- // Default: 'crypt'
- $rcmail_config['password_ldap_encodage'] = 'crypt';
- // LDAP password attribute
- // Name of the ldap's attribute used for storing user password
- // Default: 'userPassword'
- $rcmail_config['password_ldap_pwattr'] = 'userPassword';
- // LDAP password force replace
- // Force LDAP replace in cases where ACL allows only replace not read
- // See http://pear.php.net/package/Net_LDAP2/docs/latest/Net_LDAP2/Net_LDAP2_Entry.html#methodreplace
- // Default: true
- $rcmail_config['password_ldap_force_replace'] = true;
- // LDAP Password Last Change Date
- // Some places use an attribute to store the date of the last password change
- // The date is meassured in "days since epoch" (an integer value)
- // Whenever the password is changed, the attribute will be updated if set (e.g. shadowLastChange)
- $rcmail_config['password_ldap_lchattr'] = '';
- // LDAP Samba password attribute, e.g. sambaNTPassword
- // Name of the LDAP's Samba attribute used for storing user password
- $rcmail_config['password_ldap_samba_pwattr'] = '';
- // LDAP Samba Password Last Change Date attribute, e.g. sambaPwdLastSet
- // Some places use an attribute to store the date of the last password change
- // The date is meassured in "seconds since epoch" (an integer value)
- // Whenever the password is changed, the attribute will be updated if set
- $rcmail_config['password_ldap_samba_lchattr'] = '';
- // DirectAdmin Driver options
- // --------------------------
- // The host which changes the password
- // Use 'ssl://host' instead of 'tcp://host' when running DirectAdmin over SSL.
- // The host can contain the following macros that will be expanded as follows:
- // %h is replaced with the imap host (from the session info)
- // %d is replaced with the domain part of the username (if the username is an email)
- $rcmail_config['password_directadmin_host'] = 'tcp://localhost';
- // TCP port used for DirectAdmin connections
- $rcmail_config['password_directadmin_port'] = 2222;
- // vpopmaild Driver options
- // -----------------------
- // The host which changes the password
- $rcmail_config['password_vpopmaild_host'] = 'localhost';
- // TCP port used for vpopmaild connections
- $rcmail_config['password_vpopmaild_port'] = 89;
- // cPanel Driver options
- // --------------------------
- // The cPanel Host name
- $rcmail_config['password_cpanel_host'] = 'host.domain.com';
- // The cPanel admin username
- $rcmail_config['password_cpanel_username'] = 'username';
- // The cPanel admin password
- $rcmail_config['password_cpanel_password'] = 'password';
- // The cPanel port to use
- $rcmail_config['password_cpanel_port'] = 2082;
- // Using ssl for cPanel connections?
- $rcmail_config['password_cpanel_ssl'] = true;
- // The cPanel theme in use
- $rcmail_config['password_cpanel_theme'] = 'x';
- // XIMSS (Communigate server) Driver options
- // -----------------------------------------
- // Host name of the Communigate server
- $rcmail_config['password_ximss_host'] = 'mail.example.com';
- // XIMSS port on Communigate server
- $rcmail_config['password_ximss_port'] = 11024;
- // chpasswd Driver options
- // ---------------------
- // Command to use
- $rcmail_config['password_chpasswd_cmd'] = 'sudo /usr/sbin/chpasswd 2> /dev/null';
- // XMail Driver options
- // ---------------------
- $rcmail_config['xmail_host'] = 'localhost';
- $rcmail_config['xmail_user'] = 'YourXmailControlUser';
- $rcmail_config['xmail_pass'] = 'YourXmailControlPass';
- $rcmail_config['xmail_port'] = 6017;
- // hMail Driver options
- // -----------------------
- // Remote hMailServer configuration
- // true: HMailserver is on a remote box (php.ini: com.allow_dcom = true)
- // false: Hmailserver is on same box as PHP
- $rcmail_config['hmailserver_remote_dcom'] = false;
- // Windows credentials
- $rcmail_config['hmailserver_server'] = array(
- 'Server' => 'localhost', // hostname or ip address
- 'Username' => 'administrator', // windows username
- 'Password' => 'password' // windows user password
- );
- // Virtualmin Driver options
- // -------------------------
- // Username format:
- // 0: username@domain
- // 1: username%domain
- // 2: username.domain
- // 3: domain.username
- // 4: username-domain
- // 5: domain-username
- // 6: username_domain
- // 7: domain_username
- // 8: username@domain; mbox.username
- $rcmail_config['password_virtualmin_format'] = 8;
- // pw_usermod Driver options
- // --------------------------
- // Use comma delimited exlist to disable password change for users
- // Add the following line to visudo to tighten security:
- // www ALL=NOPASSWORD: /usr/sbin/pw
- $rcmail_config['password_pw_usermod_cmd'] = 'sudo /usr/sbin/pw usermod -h 0 -n';
- // DBMail Driver options
- // -------------------
- // Additional arguments for the dbmail-users call
- $rcmail_config['password_dbmail_args'] = '-p sha512';
- // Expect Driver options
- // ---------------------
- // Location of expect binary
- $rcmail_config['password_expect_bin'] = '/usr/bin/expect';
- // Location of expect script (see helpers/passwd-expect)
- $rcmail_config['password_expect_script'] = '';
- // Arguments for the expect script. See the helpers/passwd-expect file for details.
- // This is probably a good starting default:
- // -telent -host localhost -output /tmp/passwd.log -log /tmp/passwd.log
- $rcmail_config['password_expect_params'] = '';
- // smb Driver options
- // ---------------------
- // Samba host (default: localhost)
- $rcmail_config['password_smb_host'] = 'localhost';
- // Location of smbpasswd binary
- $rcmail_config['password_smb_cmd'] = '/usr/bin/smbpasswd';
5.3 Проверка конфигурации
Проверка работоспособности Roundcube заключается попыткой подключения к какому-нибудь почтовому ящику. Если что-то не работает, то смотрите в логи веб сервера или куда у вас там PHP выводит отладочные сообщения. Для примера приведу пару скриншотов рабочего интерфейса (жмякните на картинку, чтобы увеличить ее):

На рисунке представлен интерфейс Roundcube в работе.

На рисунке представлен интерфейс для управления пользовательскими фильтрами.
Заключение
Статья получилась довольно большая, причем я старался рассказывать только по делу и все самое необходимое для понимания и настройки рабочей почтовой системы. Следовательно, желающим как следует разобраться в работе почтовых серверов придется еще много попотеть, поскольку область очень большая, технологий достаточно, софта также не мало, а информации еще больше. Ниже я приведу некоторые полезные ссылки на тот базис знаний, который должен знать администратор почтового сервера.
Что в итоге? В итоге у нас есть вполне работоспособная почтовая система, позволяющая обслуживать большое количество клиентов (есть у меня один из почтовых серверов, имеющий в ключевых местах похожие конфиги и обрабатывающий почти 1000 писем в день, по сути это совсем немного, но все же показатель), в состоянии отшибать спам (около 95%) без использования дополнительных средств фильтрации (таких как SpamAssasin, DSPAM и других), имеющая возможность проверки почты антивирусом и доступом к ней через удобный веб интерфейс. Надеюсь, больше ничего не забыл указать из ключевых возможностей.
Приветствуется любая конструктивная критика, связанная с темой/областью статьи, которую можно "высказать", через форму комментариев ниже. Все вопросы, типа: почему у меня тут почему-то и что-то не работает или не получается...?, просьба задавать в соответствующей ветке форума.
пн, 25/03/2013 - 22:54
ср, 19/06/2013 - 00:42
ср, 19/06/2013 - 09:58
ср, 24/07/2013 - 11:38
ср, 24/07/2013 - 13:28
пн, 02/09/2013 - 11:20
пн, 02/09/2013 - 18:54
пн, 25/11/2013 - 12:40
пн, 25/11/2013 - 18:54
пт, 07/02/2014 - 13:29
пт, 07/02/2014 - 20:52
пт, 07/02/2014 - 21:13
ср, 09/04/2014 - 12:31
ср, 09/04/2014 - 17:58
ср, 14/05/2014 - 18:36
ср, 14/05/2014 - 21:57
ср, 01/10/2014 - 14:30
чт, 02/10/2014 - 19:02
сб, 08/11/2014 - 06:38
сб, 08/11/2014 - 10:36
вс, 30/11/2014 - 22:30
пн, 01/12/2014 - 11:29
вт, 02/12/2014 - 23:30
ср, 03/12/2014 - 17:18
пт, 01/04/2016 - 16:58
сб, 02/04/2016 - 20:16
пн, 04/04/2016 - 17:55
ср, 19/09/2018 - 11:36
чт, 20/09/2018 - 07:39
пн, 25/03/2013 - 20:20
"uid integer" DEFAULT 26 NOT NULL,
"gid integer" DEFAULT 6 NOT NULL,
Походу опечатка, кавычки не там, а я с пол часа втыкал, что ему не нравится:-)