2009-07-02

Roundcube. WEB морда для почты

Наверное все конторы к этому приходят рано или поздно.
Некоторым работникам нужно получать доступ к корпоративной почте из любой точки земного шара. Для этого нужно что??? Правильно, вебовская морда для почты, выставленная наружу. Вот этим и займемся.

Вариантов я нашел несколько:

RoundCube
SquirrelMail
Horde
OpenWebMail
AlphaMail

Из всего указанного подошел только roundcube. Ну просто выглядит по человечески, остальное как-то прям стыдно в пользование директорату давать.

Естественно будет все крутится на любимом SLES неважнокакой версии. В моем случае SLES10.
У нас должен быть установлен postgresql неважнокакой версии, apache2 и такой набор модулей php:

apache2-mod_php5-5.2.5-9.5
php5-5.2.5-9.5
php5-curl-5.2.5-9.5
php5-dom-5.2.5-9.5
php5-gd-5.2.5-9.5
php5-gettext-5.2.5-9.5
php5-iconv-5.2.5-9.5
php5-imap-5.2.5-9.5
php5-ldap-5.2.5-9.5
php5-mbstring-5.2.5-9.5
php5-mcrypt-5.2.5-9.5
php5-mhash-5.2.5-9.5
php5-openssl-5.2.5-9.5
php5-pdo-5.2.5-9.5
php5-pgsql-5.2.5-9.5
php5-timezonedb-2008.2-0.3
php5-xmlreader-5.2.5-9.5
php5-xmlrpc-5.2.5-9.5
php5-zlib-5.2.5-9.5

С сайта roundcube.net тянем последнюю стабильную версию. На тот момент это roundcubemail-0.2.2.tar.gz. Архив распаковываем в /srv/www/htdocs и переименовываем в mail. то есть получаем директорию /srv/www/htdocs/mail. Меняем права на каталоги:

chown wwwrun /srv/www/htdocs/mail/logs -R
chown wwwrun /srv/www/htdocs/mail/temp -R

Создаем БД в postgres так как написано в инструкции, идущей в дистрибутиве.

Потом рихтуем конфиги

/srv/www/htdocs/mail/config/db.inc.php :

Здесь настраиваем связь с недавно созданной БД. То есть я поменял строку

$rcmail_config['db_dsnw'] = 'mysql://roundcube:pass@localhost/roundcubemail';

на строку

$rcmail_config['db_dsnw'] = 'pgsql://roundcube:пароль@ip-адрес/roundcubemail';

Потом настраиваем конфиг

/srv/www/htdocs/mail/config/main.inc.php :

Я приведу его листинг

*********************************************


$rcmail_config = array();


$rcmail_config['debug_level'] = 1;

$rcmail_config['log_driver'] = 'file';

$rcmail_config['syslog_id'] = 'roundcube';

$rcmail_config['syslog_facility'] = LOG_USER;

$rcmail_config['log_dir'] = 'logs/';

$rcmail_config['temp_dir'] = 'temp/';

$rcmail_config['enable_caching'] = TRUE;

$rcmail_config['message_cache_lifetime'] = '10d';

$rcmail_config['auto_create_user'] = TRUE;

$rcmail_config['default_host'] = 'адрес почтового сервера';

$rcmail_config['default_port'] = 143;

$rcmail_config['imap_auth_type'] = null;

$rcmail_config['imap_root'] = null;
$rcmail_config['imap_delimiter'] = null;

$rcmail_config['username_domain'] = 'имя домена';

$rcmail_config['mail_domain'] = 'имя домена';

$rcmail_config['virtuser_file'] = '';

$rcmail_config['virtuser_query'] = '';

$rcmail_config['smtp_server'] = 'адрес почтового сервера';

$rcmail_config['smtp_port'] = 25;

$rcmail_config['smtp_user'] = '';

$rcmail_config['smtp_pass'] = '';

$rcmail_config['smtp_auth_type'] = '';

$rcmail_config['smtp_helo_host'] = '';

$rcmail_config['smtp_log'] = TRUE;

$rcmail_config['sendmail_delay'] = 0;

$rcmail_config['list_cols'] = array('subject', 'from', 'date', 'size', 'flag', 'attachment');

$rcmail_config['skin_include_php'] = FALSE;

$rcmail_config['session_lifetime'] = 10;

$rcmail_config['ip_check'] = false;

$rcmail_config['double_auth'] = false;

$rcmail_config['des_key'] = 'rcmail-!24ByteDESkey*Str';

$rcmail_config['language'] = null;

$rcmail_config['date_short'] = 'D H:i';

$rcmail_config['date_long'] = 'd.m.Y H:i';

$rcmail_config['date_today'] = 'H:i';

$rcmail_config['useragent'] = 'RoundCube Webmail/0.2.2';

$rcmail_config['product_name'] = 'RoundCube Webmail';

$rcmail_config['drafts_mbox'] = 'Drafts';

$rcmail_config['junk_mbox'] = 'Junk';

$rcmail_config['sent_mbox'] = 'Sent';

$rcmail_config['trash_mbox'] = 'Trash';

$rcmail_config['default_imap_folders'] = array('INBOX', 'Drafts', 'Sent', 'Junk', 'Trash');

$rcmail_config['create_default_folders'] = FALSE;

$rcmail_config['protect_default_folders'] = TRUE;

$rcmail_config['quota_zero_as_unlimited'] = FALSE;

$rcmail_config['mdn_requests'] = 0;

$rcmail_config['default_charset'] = 'ISO-8859-1';

$rcmail_config['enable_spellcheck'] = TRUE;

$rcmail_config['spellcheck_engine'] = 'googie';

$rcmail_config['spellcheck_uri'] = '';

$rcmail_config['spellcheck_languages'] = NULL;

$rcmail_config['generic_message_footer'] = '';

$rcmail_config['http_received_header'] = false;

$rcmail_config['mail_header_delimiter'] = NULL;

$rcmail_config['session_domain'] = '';

$rcmail_config['address_book_type'] = 'ldap';

$rcmail_config['ldap_public'] = array();

$rcmail_config['ldap_public']['имя книги'] = array(
'name' => 'имя книги',
'hosts' => array('адрес сервера ldap с адресной книгой'),
'port' => 389,
'use_tls' => false,
'user_specific' => false,
'base_dn' => 'базовый DN',
'bind_dn' => '',
'bind_pass' => '',
'writable' => false,
'LDAP_Object_Classes' => array("top", "inetOrgPerson"),
'required_fields' => array("cn", "sn", "mail"),
'LDAP_rdn' => 'mail',
'ldap_version' => 3,
'search_fields' => array('mail', 'cn'),
'name_field' => 'cn',
'email_field' => 'mail',
'surname_field' => 'sn',
'firstname_field' => 'gn',
'sort' => 'cn',
'scope' => 'sub',
'filter' => '',
'fuzzy_search' => true);


$rcmail_config['autocomplete_addressbooks'] = array('sql');

$rcmail_config['dont_override'] = array();

$rcmail_config['identities_level'] = 0;

$rcmail_config['include_host_config'] = false;

$rcmail_config['max_pagesize'] = 200;

$rcmail_config['mime_magic'] = '/usr/share/misc/magic';

$rcmail_config['message_sort_col'] = 'date';

$rcmail_config['message_sort_order'] = 'DESC';

$rcmail_config['enable_installer'] = true;

$rcmail_config['log_logins'] = false;

$rcmail_config['delete_always'] = false;

$rcmail_config['min_keep_alive'] = 60;

$rcmail_config['skin'] = 'default';

$rcmail_config['pagesize'] = 40;

$rcmail_config['timezone'] = 'auto';

$rcmail_config['dst_active'] = (bool)date('I');

$rcmail_config['prefer_html'] = TRUE;

$rcmail_config['show_images'] = 0;

$rcmail_config['htmleditor'] = FALSE;

$rcmail_config['prettydate'] = TRUE;

$rcmail_config['draft_autosave'] = 300;

$rcmail_config['preview_pane'] = FALSE;

$rcmail_config['focus_on_new_message'] = true;

$rcmail_config['logout_purge'] = FALSE;

$rcmail_config['logout_expunge'] = FALSE;

$rcmail_config['inline_images'] = TRUE;

$rcmail_config['mime_param_folding'] = 0;

$rcmail_config['skip_deleted'] = FALSE;

$rcmail_config['read_when_deleted'] = TRUE;

$rcmail_config['flag_for_deletion'] = FALSE;

$rcmail_config['keep_alive'] = 60;

$rcmail_config['check_all_folders'] = FALSE;

?>

*********************************************

Вот... Чтобы убедиться, что все нормально, запускаем http://адрескуба/mail/installer и смотрим, что нет критичных ошибок. Потом папку /srv/www/htdocs/mail/installer переименовываем.

Комментариев нет: