Содержание
У нас имеется Ubuntu 10.04 server, при установке которого был выбран LAMP сервер, в связи с этим я здесь не буду описывать настройку apache2 + php5 + mysql.
Так же у нас уже есть настроенные LDAP сервер и Почтовый сервер.
Все действия в этой статье выполняются от пользователя root.
1. Установка и настройка RoundCubeMail
Скачиваем Roundcubemail (версия 0.4.2 последняя на момент написания статьи)
cd /usr/src/ && wget http://ignum.dl.sourceforge.net/project/roundcubemail/roundcubemail/0.4.2/roundcubemail-0.4.2.tar.gz
Распаковываем полученный архив
tar xzf roundcubemail-0.4.2.tar.gz
Перемещаем распакованные файлы
mv roundcubemail-0.4.2 /var/www/roundcubemail
Назначаем права
chown -R root:root /var/www/roundcubemail chown -R :www-data /var/www/roundcubemail/logs chown -R :www-data /var/www/roundcubemail/temp chmod 775 /var/www/roundcubemail/logs chmod 775 /var/www/roundcubemail/temp
Устанавливаем необходимые пакеты
apt-get install php5-mcrypt
Перезагружаем apache
/etc/init.d/apache2 restart
Создаём базу данных для roundcubemail
mysql -u root -p CREATE DATABASE roundcubemail; GRANT ALL PRIVILEGES ON roundcubemail.* TO roundcube@localhost IDENTIFIED BY 'password'; \q
Открываем Roundcubemail в браузере
http://IP вашего сервера/roundcubemail/installer
и начинаем конфигурировать.
Жмём START INSTALLATION
Везде должно быть ОК кроме
PostgreSQL: NOT AVAILABLE(Not installed) SQLite (v2): NOT AVAILABLE(Not installed) date.timezone: NOT OK(Could be set)
Жмём NEXT и в появившейся странице выставляем следующие значения
General configuration
product_name = ваше значение
Database setup
Database type = MySql Database server (omit for sqlite) = localhost Database name (use absolute path and filename for sqlite) = roundcubemail Database user name (needs write permissions)(omit for sqlite) = roundcube Database password (omit for sqlite) = password
IMAP Settings
default_host = ssl://localhost default_port = 993 username_domain = example.com
SMTP Settings
smtp_server = ssl://localhost smtp_port = 465 Use the current IMAP username and password for SMTP authentication = ставим галочку
Display settings & user prefs
language * = ru_RU preview_pane * = ставим галочку htmleditor * = ставим галочку draft_autosave * = never
Жмём CREATE CONFIG и скачиваем main.inc.php и db.inc.php после чего их необходимо поместить в /var/www/roundcubemail/config на сервере
Жмём CONTINUE
Видим следующее
DB Schema: NOT OK(Database not initialized)
Жмём Initialize database
Тестируем IMAP
Test IMAP config
Указываем Username и Password
Жмём Check login
Ответом должно быть
IMAP connect: OK(SORT capability: yes)
SMTP протестировать не удалось так как не смотря указанный логи и пароль тест идёт от анонимного пользователя. Но при работе всё нормально.
Всё конфигурирование Roundcubemail завершено.
Можно зайти и посмотреть как всё работает, открываем в браузере
http://IP вашего сервера/roundcubemail
2. Подключение плагинов в RoundCubeMail
Подключим два плагина, один для создания фильтров, второй для перемещения писем в папку спам.
Редактируем /var/www/roundcubemail/config/main.inc.php следующим образом
$rcmail_config['plugins'] = array('managesieve', 'markasjunk');
Подключаем конфиг файл плагина managesieve
cp /var/www/roundcubemail/plugins/managesieve/config.inc.php.dist /var/www/roundcubemail/plugins/managesieve/config.inc.php
Всё плагины подключены.
3. Подключение адресной книги из LDAP
Для этого устанавливаем необходимые пакеты
apt-get install php5-ldap
и редактируем /var/www/roundcubemail/config/main.inc.php
Находим в нём раздел
// ---------------------------------- // 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. //$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']['Example'] = array( 'name' => 'Example', // Имя адресной книги // 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) // For example %n = mail.domain.tld, %d = domain.tld 'hosts' => array('ldap.example.com'), // FQDN имя LDAP сервера, можно использовать IP адрес. 'port' => 389, // Порт подключения к LDAP серверу 'use_tls' => true, // Активация TLS '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" 'base_dn' => 'ou=Users,dc=example,dc=com', // Место нахождения пользователей в LDAP 'bind_dn' => 'cn=admin,dc=example,dc=com', // Админ LDAP сервера 'bind_pass' => 'secret', // Пароль админа LDAP сервера 'writable' => false, // Запрещаем редактирование LDAP записей из RoundCube // 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 'sort' => 'cn', // The field to sort the listing by. 'scope' => 'sub', // search mode: sub|base|list 'filter' => '(&(mail=*))', // 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. ); // 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','Example');
Теперь в roundcube, в разделе Контакты должна быть доступна адресная книга Example с пользователями из LDAP
Как добавить другие параметры из LDAP читайте здесь.
Обсудить данную статью можно на форуме.
4. Материалы используемые при написании данной статьи
http://blogs.ungrund.org/xio/2008/08/13/roundcube-on-debian-testing/
http://muff.kiev.ua/content/roundcube-webmail-eshche-odin-pochtovyi-veb-interfeis
http://trac.roundcube.net/wiki/Howto_Install