RoundCube Webmail - еще один почтовый веб-интерфейс

Версия для печатиОтправить другуPDF version

Roundcube

В продолжение темы о веб-интерфейсах почтовой системы рассмотрим установку и настройку RoundCube Webmail. RoundCube Webmail — это клиент для работы с электронной почтой с веб-интерфейсом, написанный на PHP с использованием CSS и XHTML и технологии AJAX. Описание можно посмотреть здесь, а сейчас повторюсь и отмечу основные возможности и особенности программы.

  • Основана на PHP и MySQL
  • Поддержка мультиязычности
  • Полная поддержка MIME и HTML сообщений
  • Вложения к письмам
  • Поддержка IMAP
  • Отправка писем сразу нескольким адресатам
  • Простая адресная книга
  • Система подсказки имени адресата при вводе
  • Пересылка сообщений с вложениями
  • Создание или удаление персональных папок
  • Кэширование для ускорения доступа к письмам
  • Поддержка внешнего SMTP сервера
  • Расширенный пользовательский интерфейс
  • Неограниченное количество пользователей и сообщений
  • Полное изменение внешнего вида с помощью скинов

Судя по описанию, софт хорош. Соответственно нужно "пощупать". Устанавливать будем из портов (за актуальность которых, надеюсь, опасаться не приходится - иначе нужно их обновить).

# cd /usr/ports/mail/roundcube && make install clean && rehash

Из опций выбираю только поддержку MySQL (включено по дефолту).

В завершение установки, было выдано рекомендации по настройке:

FIRST INSTALLATION

  1. Create a new database and a database user for RoundCube
  2. Create database tables using the queries in file 'SQL/*.initial.sql'
  3. Modify the files in config/* to suit your local environment
  4. Don't forget to set db.inc.php mode to 660.

Теперь по пунктах.

1. Необходимо создать новую базу данных и пользователя.

mysql> create database roundcube;
Query OK, 1 row affected (0.00 sec)

mysql> grant all on roundcube.* to 'roundcube'@'localhost' identified by 'mysql_password';
Query OK, 0 rows affected (0.11 sec)

2. Создать таблицы базы данных, используя запросы, которые находятся в 'SQL/*.initial.sql'.

Посмотрим, что находится в каталоге "SQL":

ls -la /usr/local/www/roundcube/SQL/
total 48
drwxr-xr-x   2 www  www    512 23 апр 11:31 .
drwxr-xr-x  10 www  www    512 21 май 01:56 ..
-r--r--r--   1 www  www  10669 23 апр 11:30 mssql.initial.sql
-r--r--r--   1 www  www   5764 15 апр 09:33 mysql.initial.sql
-r--r--r--   1 www  www   3876 15 апр 09:33 mysql.update.sql
-r--r--r--   1 www  www   6197 15 апр 09:33 postgres.initial.sql
-r--r--r--   1 www  www   3016 15 апр 10:54 postgres.update.sql
-r--r--r--   1 www  www   4252 15 апр 09:33 sqlite.initial.sql
-r--r--r--   1 www  www   3864 20 апр 10:26 sqlite.update.sql

Как видим, есть примеры для следующих баз данных:

  • MSSQL
  • MySQL
  • Рostgres
  • Sqlite

Поскольку использовать будем MySQL, то воспользуемся файлом mysql.initial.sql:

# mysql -u roundcube -p roundcube < /usr/local/www/roundcube/SQL/mysql.initial.sql

3. Изменить файлы в config/*, чтобы они удовлетворяли локальную среду (тобишь вписывались в общую настройку сервера)

В файле db.inc.php находятся параметры соединения с базой данных. Я оставил все по умолчанию, изменив только параметры соединения с БД MySQL, а именно - указав пароль. Строка задания параметров соединения выглядит следующим образом:

# cat /usr/local/www/roundcube/config/db.inc.php | grep db_dsnw
$rcmail_config['db_dsnw'] = 'mysql://roundcube:mysql_password@localhost/roundcube';

Теперь посмотрим, что "скрывает" файл main.inc.php. Мдя... Здесь немного поболее всеких буковок и строчечек. Возьмемся за перевод. Итак, результат (внесенные изменения параметров выделены красным):

<?php

/*

Главный конфигурационный файл

Этот файл является частью RoundCube Webmail client
Copyright (C) 2005-2009, RoundCube Dev. - Switzerland
Licensed under the GNU GPL

*/

$rcmail_config = array();
// ----------------------------------
// LOGGING/DEBUGGING
// ----------------------------------

// Сообщения системы об ошибках: 1 = логирование; 2 = рапорт (пока недоступно),
// 4 = отобразить, 8 = отметка
$rcmail_config['debug_level'] = 1;
// Драйвер ошибок: 'syslog' или 'file'.
$rcmail_config['log_driver'] = 'file';

// Формат даты для ведения логов
// (ознакомиться с http://php.net/manual/en/function.date.php для всех символов
// управления форматом)
$rcmail_config['log_date_format'] = 'd-M-Y H:i:s O';
// Используемая строка идентифкации, если используется драйвер ошибок 'syslog'
$rcmail_config['syslog_id'] = 'roundcube';

// Какие средства (facility) используются, если используется драйвер ошибок 'syslog'
// Для ознакомления с возможными значениями смотрите инсталятор
// или http://php.net/manual/en/function.openlog.php
$rcmail_config['syslog_facility'] = LOG_USER;
// Вести логи отправленых сообщений в <log_dir>/sendmail или в syslog
$rcmail_config['smtp_log'] = true;

// Вести логи успешных авторизаций в <log_dir>/userlogins или в syslog
$rcmail_config['log_logins'] = false;
// Вести логи SQL-запросов в <log_dir>/sql или в syslog
$rcmail_config['sql_debug'] = false;

// Вести логи обмена командами IMAP в <log_dir>/imap или в syslog
$rcmail_config['imap_debug'] = false;
// Вести логи обмена командами LDAP в <log_dir>/ldap или в syslog
$rcmail_config['ldap_debug'] = false;

// Вести логи обмена командами SMTP в <log_dir>/smtp или в syslog
$rcmail_config['smtp_debug'] = false;

// ----------------------------------
// IMAP
// ----------------------------------

 

// Почтовый узел, выбраный для авторизации
// Оставьте пустым для текстового поля авторизации,введите список хостов для
// выпадающего меню или задайте строкой необходимый хост
// Для использования SSL/TLS-соединения, введите имя хоста с префиксом ssl:// или tls://
$rcmail_config['default_host'] = 'localhost';

 

// TCP-порт, который будет использовать IMAP-соединиение
$rcmail_config['default_port'] = 143;

 

// Тип авторизации IMAP. Может использоваться "auth" (CRAM-MD5), "plain" (PLAIN) или "check"
// для автоопределения
// Опционально, по умолчанию "check"
$rcmail_config['imap_auth_type'] = null;

 

// Если вам известна ваш корневой каталог imap и разделитель, можете указать их здесь.
// Иначе, эти значения будут определены автоматически
$rcmail_config['imap_root'] = null;
$rcmail_config['imap_delimiter'] = null;

 

// По умолчанию возможности IMAP определяются после установки соединения с IMAP-сервером
// В некоторых случаях, например, когда используется проксирование IMAP, необходимо обновлять
// список после авторизации. Задать "True", если у вас такой случай
$rcmail_config['imap_force_caps'] = false;
 

 

// ----------------------------------
// SMTP
// ----------------------------------

 

// SMTP-сервер (для отправки сообщений).
// Для использования SSL/TLS-соединения, введите имя хоста с префиксом ssl:// или tls://
// Если оставить пустым, будет использоваться функция PHP mail()
// Используйте переменную %h для замены пользователем имени IMAP-хоста
$rcmail_config['smtp_server'] = 'localhost';

 

// SMTP-порт (по умолчани. 25; или 465 для SSL)
$rcmail_config['smtp_port'] = 25;

 

// Имя пользователя SMTP (если необходимо). Если установить переменную %u как имя
// пользователя, RoundCube будет использовать текущее имя пользователя для авторизации
$rcmail_config['smtp_user'] = '';

 

// Пароль SMTP (если необходимо). Если установить переменную %p как пароль, RoundCube
// будеть использовать текущий пароль пользователя для авторизации
$rcmail_config['smtp_pass'] = '';

 

// Тип SMTP-авторизации (DIGEST-MD5, CRAM-MD5, LOGIN, PLAIN или оставьте пустым для
// использования наилучшего, поддерживаемого сервером)
$rcmail_config['smtp_auth_type'] = '';

 

// SMTP HELO хоста
// Имя хоста для предоставления удаленному серверу в SMTP 'HELO' или 'EHLO' сообщении
// Оставьте пустым для получения переменной 'server_name' или localhost, если не задано
$rcmail_config['smtp_helo_host'] = 'mail.muff.kiev.ua';

 

// ----------------------------------
// SYSTEM
// ----------------------------------

 

// ЭТА ОПЦИЯ РАЗРЕШАЕТ ИНСТАЛЯТОРУ РАБОТАТЬ И ВЫСТАВЛЯТЬ "ТОНКИЕ" НАСТРОЙКИ КОНФИГУРАЦИИ.
// ВКЛЮЧАТЬ ТОЛЬКО ЕСЛИ ВЫ ТОЧТО УВЕРЕНЫ В СВОИХ ДЕЙСТВИЯХ!
$rcmail_config['enable_installer'] = false;

 

// Использовать эту папку для хранения лог-файлов (нужны права записи для пользователя
// apache. Используется если включен драйвер ошибок 'file'
$rcmail_config['log_dir'] = 'logs/';

 

// Использовать эту папку для храниния временных файлов (нужны права записи для
// пользователя apache.
$rcmail_config['temp_dir'] = 'temp/';

 

// Включить кеширование сообщений и данных почтовых ящиков в локальную базу данных.
// Рекомендуется, если IMAP-сервер не находится на этой же машине
$rcmail_config['enable_caching'] = false;

 

// Время жизни кеша сообщений
// Доступные форматы: s, m, h, d, w
$rcmail_config['message_cache_lifetime'] = '10d';

 

// Принудительное соединение поверх https
// Если эта опция включена, все небезопасные соединения будут перенаправлены.
// Задайте порт для ssl-соединения как значение этой опции, если он отличается от
// стандартного 443
$rcmail_config['force_https'] = false;

 

// Автоматически создавать нового RoundCube пользователся, если авторизация произведена
// впервые. Новый пользователь будет создан только после успешной IMAP-авторизации.
// set to false if only registered users can use this service
$rcmail_config['auto_create_user'] = true;

 

// Вложения должны быть интерпретированы как РНР-файлы
$rcmail_config['skin_include_php'] = false;

 

// Время жизни сессии в минутах
// Должно быть больше чем 'keep_alive'/60
$rcmail_config['session_lifetime'] = 15;

 

// Проверять клиентский IP-адрес в сесии авторизации
$rcmail_config['ip_check'] = false;

 

// Использовать дополнительное изменение cookie в сеансах авторизации пользователей
// Сообщается о проблемах, связанных с использованием этой функции.
$rcmail_config['double_auth'] = false;

 

// Этот ключ используется для рассшифровки пароля imap, если он сохранен в записи
// сессии (и клиентские cookie хранят информации, о том, что пароль задан).
// Введите строку точно в 24 символа
$rcmail_config['des_key'] = 'lnfd94kder85FKV3fD93DS4w';

 

// Автоматически добавлять это доменное имя к имени пользователя при авторизации
// Только для IMAP-серверов, которые требуют почтовый адрес в качестве логина
// Задать массив со значениями 'host' => 'domain' для поддержки нескольких хостов
$rcmail_config['username_domain'] = '';

 

// Этот домен будет использоваться для формирования почтового адреса нового пользователя
// Задать массив со значениями 'host' => 'domain' для поддержки нескольких хостов
$rcmail_config['mail_domain'] = '';

 

// Кодировка пароля
// Используй, если внутренняя аутентификация не поддерживает UTF-8.
// По умолчанию ISO-8859-1 для обеспечения обратной совместимости
$rcmail_config['password_charset'] = 'ISO-8859-1';

 

// Сколько секунд должно пройти между отправкой почты пользователем
$rcmail_config['sendmail_delay'] = 0;

 

// Максимальное количество получателей на сообщение. По умолчанию: 0 (без ограничений)
$rcmail_config['max_recipients'] = 0;

 

// Макчимальное количество учасников адрессной группы. По умолчанию: 0 (без ограничений)

// Если 'max_recipients' задано, эта опция должна быть меньше или равняться
$rcmail_config['max_group_members'] = 0;

 

// Добавить этот user-agent в заголовок сообщения при отправке
$rcmail_config['useragent'] = 'RoundCube Webmail/'.RCMAIL_VERSION;

 

// Использовать это имя для заголовка окна создания сообщения
$rcmail_config['product_name'] = 'RoundCube Webmail';

 

// Попытка загрузить специфические для хоста настройки
// Смотри http://trac.roundcube.net/wiki/Howto_Config для ознакомления
$rcmail_config['include_host_config'] = false;

 

// Путь к текстовому файлу file, который будет добавлен к каждому сообщению.
// Путь относительный к корневому каталогу RoundCube
$rcmail_config['generic_message_footer'] = '';

 

// Добавить общепринятый заголовок к исходяцим письмам, который содержит IP
// и имя хоста
$rcmail_config['http_received_header'] = false;

 

// Не кодировать IP-адресс и имя хоста, что иногда рассматривается
// как важная информация, однако для администратора они могут быть неоценимой
// помощью при выявлении проблемы.
$rcmail_config['http_received_header_encrypt'] = false;

 

// Эта строка используется как разделитель для хедера сообщения при отправке
// Оставьте пустым для автоопределения
$rcmail_config['mail_header_delimiter'] = NULL;

 

// Имя домена для сесий

// ПРИМЕЧАНИЕ (переводчика): Если почтовый сервер мультидоменный и отвечает на несколько

// доменных имен, этот параметр оставьте пустым.
$rcmail_config['session_domain'] = '';

 

// Не разрешать эти настройки переписывать пользователем
$rcmail_config['dont_override'] = array();

 

// Установите определения уровня доступа:
// 0 - Много определений с возможностью редактировать все параметры
// 1 - Много определений с возможностью редактировать все параметры кроме e-mail
// 2 - Одно определение с возможностью редактировать все параметры
// 3 - Одно определение с возможностью редактировать все параметры кроме e-mail
$rcmail_config['identities_level'] = 0;

 

// База данных mime magic
$rcmail_config['mime_magic'] = '/usr/share/misc/magic';

// Назначить проверку DNS для проверки достоверности e-mail
$rcmail_config['email_dns_check'] = false;

 

// ----------------------------------
// PLUGINS
// ----------------------------------

 

// Список активных надстроек (в каталоге plugins/)
$rcmail_config['plugins'] = array();

 

// ----------------------------------
// USER INTERFACE
// ----------------------------------

 

// Сортировка колонки по умолчанию. Используйте пустое значения для сортировки сервером
// или 'arrival', 'date', 'subject', 'from', 'to', 'size', 'cc'
$rcmail_config['message_sort_col'] = 'date';

 

// Сортировка сообщений по умолчанию
$rcmail_config['message_sort_order'] = 'DESC';

 

// Эти метки доступны в списке сообщений. Возможние варианты:
// subject, from, to, cc, replyto, date, size, flag, attachment
$rcmail_config['list_cols'] = array('subject', 'from', 'date', 'size', 'flag', 'attachment');

 

// Настройка локализации по умолчанию (оставить пустым для автоопределения)
// RFC1766 формат языка: en_US, de_DE, de_CH, fr_FR, pt_BR
$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['drafts_mbox'] = 'Drafts';

 

// Сохранять СПАМ-сообщения в этот почтовый каталог
$rcmail_config['junk_mbox'] = 'Junk';

 

// Сохранять отправленные сообщения в этот почтовый каталог
// leave blank if sent messages should not be stored
$rcmail_config['sent_mbox'] = 'Sent';

 

// Помещать сообщения в этот каталог после удаления
// leave blank if they should be deleted directly
$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;

 

// Если в вашей системе 0 обозначает - без ограничений, укажите true
$rcmail_config['quota_zero_as_unlimited'] = false;

 

// Поведение, если получатель запрашивает уведомление о доставке (чтении)
// 0 = спросить у пользователя, 1 = отправить автоматически, 2 = игнорировать (никогда
// не отправлять и не запрашивать)
$rcmail_config['mdn_requests'] = 0;

 

// Использовать встроенную проверку правописания. Базируется на GoogieSpell.
// Только Google разрешать соединения поверх https к PHP инсталятору
// Необходима компиляция с поддержкой Open SSL
$rcmail_config['enable_spellcheck'] = true;

 

// Задать движок проверки орфографии. По умолчанию 'googie'.Доступно 'pspell', но необходима
// поддержка Pspell расширений. Когда используется Nox Spell Server, укажите set 'googie'.
$rcmail_config['spellcheck_engine'] = 'googie';

 

// Для локально установаленного движка, задайте URI для его вызова здесь. Пример:
// 'http://' . $_SERVER['HTTP_HOST'] . '/spellchecker.php?lang='
// Оставьте пустым для использования Google spell, когда контент сообщения
// отправляется в Google для проверки
$rcmail_config['spellcheck_uri'] = '';

 

// Этот язык будет выбран для проверки орфографии.
// Настройте как PHP-подобный массив 'en'=>'English', 'de'=>'Deutsch');
// Оставьте пустым для автоматического задания доступного языка
$rcmail_config['spellcheck_languages'] = NULL;

 

// Не позволять пользователям задавать размер страницы больше, чем заданный здесь
$rcmail_config['max_pagesize'] = 200;

 

// Минимальное значение пользовательской 'keep_alive' настройки (в секундах)
// Должно быть меньше чем 'session_lifetime'
$rcmail_config['min_keep_alive'] = 60;

 

// ----------------------------------
// ADDRESSBOOK SETTINGS
// ----------------------------------

 

// Этот флаг указывает, какой тип адресной книги используется. Доступные значения:
// 'sql' (по умолчанию) и 'ldap'.
// Если задать 'ldap' то будет рассматриваться адресная книга LDAP как первичная,
// и не будет отображаться адресная книга SQL как доступная адресная книга
$rcmail_config['address_book_type'] = 'sql';

 

// Для разрешения публичного ldap-поиска, задайте массив подобно примеру.
// Если хотите проверить - просто не комментируйте пример.
$rcmail_config['ldap_public'] = array();

 


// Если вы хотите использовать LDAP для индивидуальных адресных книг, вам необходимо
// задать 'user_specific' в "true" и исаользовать переменные для генерации
// соответствующего DNs для доступа.
//
// Рекомендованая структура каталогов LDAP сохраняет все записи в адресную книгу
// под пользовательским входом, например:
//
// o=root
// ou=people
// uid=user@domain
// mail=contact@contactdomain
//
// Так base_dn был бы uid=%fu,ou=people,o=root
// bind_dn был бы как based_dn или некоторый логин суперпользователя.
/*
* Пример конфигурации для Verisign каталога
*
$rcmail_config['ldap_public']['Verisign'] = array(
'name' => 'Verisign.com',
'hosts' => array('directory.verisign.com'),
'port' => 389,
'use_tls' => false,
'user_specific' => false, // Если "true" то base_dn, bind_dn и bind_pass по
//умолчанию пользовательский IMAP логин.
// %fu - Поддержка полного имени пользователся (подразумевается, что имя
// пользователя - это его e-mail. Используйте значение username_domain
// если не адрес электронной почты.
// %u - Имя, размещенное до '@'.
// %d - Домен, размещенный после '@'.
'base_dn' => '',
'bind_dn' => '',
'bind_pass' => '',
'writable' => false, // Отображает, возможна ли запись в каталог LDAP или нет.
// Если возможна, эти поля должны быть заполнены:
// LDAP_Object_Classes, required_fields, LDAP_rdn
'LDAP_Object_Classes' => array("top", "inetOrgPerson"), // Для создания нового
// контакта заполните эти класы, (или другие класы, которые вы хотите использовать)
'required_fields' => array("cn", "sn", "mail"), // Необходимые поля для
// создания нового контакта требуемые обьектными класами (может включать
// дополнительные поля, не требуемые класами)
'LDAP_rdn' => 'mail', // Поле RDN, которое используется для новых записей,
// этому полю необзодимо быть одним из search_fields, основа base_dn
// присоединяется к RDN для вставки в директорию LDAP
'ldap_version' => 3, // использовать LDAPv3
'search_fields' => array('mail', 'cn'), // поле поиска
'name_field' => 'cn', // это поле является логином контакта
'email_field' => 'mail', // это поле является e-mail контакта
'surname_field' => 'sn', // это поле является фамилией контакта
'firstname_field' => 'gn', // это поле является именем контакта
'sort' => 'cn', // это поле указывает сортировку
'scope' => 'sub', // режимы поиска: sub|base|list
'filter' => '', // Используется для первичного отображения (если не пусто)
// и может быть с поисковым запросом. Пример: status=act
'fuzzy_search' => true // Серверу разрешено подстановочный поиск
'sizelimit' => '0', // Разрешает ограничить количество загруженых полей.
// Установите в 0 для снятия ограничений.
'timelimit' => '0', // Задает количество секунд, потраченых на поиск.
// Установите в 0 для снятия ограничений.
);
*/

 

// Обьявленный массив идентификаторов адресной книги, которые нужно найти,
// автоматически заполняя серверную сторону полей, как то: array('sql','Verisign');
$rcmail_config['autocomplete_addressbooks'] = array('sql');

 

// ----------------------------------
// USER PREFERENCES
// ----------------------------------

 

// Использовать эту кодировку для преобразования сообщения
$rcmail_config['default_charset'] = 'ISO-8859-1';

 

// Название темы: каталог из skins/
$rcmail_config['skin'] = 'default';

 

// отобразить до значения X в виде списка
$rcmail_config['pagesize'] = 40;

 

// Использовать этот часовой пояс для отображения даты/времени
$rcmail_config['timezone'] = 'auto';

 

// Ежедневное сохранения включено?
$rcmail_config['dst_active'] = (bool)date('I');

 

// Сначала отображать HTML сообщения
$rcmail_config['prefer_html'] = true;

 

// Отображать удаленные встроенные изображения
// 0 - Никогда, всегда спрашивать
// 1 - Спрашивать, если отправителя нет в адресной книге
// 2 - Всегда отображать
$rcmail_config['show_images'] = 0;

 

// Создавать html-сообщения по умолчанию
$rcmail_config['htmleditor'] = false;

 

// Отображать удобные даты по умолчанию
$rcmail_config['prettydate'] = true;

 

// сохранять создаваемое сообщение каждые 300 секунд (5 мин)
$rcmail_config['draft_autosave'] = 300;

 

// Значение по умолчанию, если предварительный просмотр разрешен
$rcmail_config['preview_pane'] = false;

 

// Помечать как прочитанное в предварительном просмотре (задержка в секундах)
// Задать в -1 если сообщение в предварительном просмотре не маркировать
// как прочитанное
$rcmail_config['preview_pane_mark_read'] = 3;

 

// Переключаться на новое окно, по приходу нового сообщения
$rcmail_config['focus_on_new_message'] = true;

 

// Очищать корзину при выходе
$rcmail_config['logout_purge'] = false;

 

// Сжимать Входящие при выходе
$rcmail_config['logout_expunge'] = false;

 

// Отображать прикрепленные изображения ниже тела сообщения
$rcmail_config['inline_images'] = true;

 

// Перекодировать длинные/non-ascii имена вложений:
// 0 - Полная RFC 2231 совместимость
// 1 - RFC 2047 для значений 'имя' и RFC 2231 для 'имя_файла'
// 2 - ПОлная 2047 совместимость
$rcmail_config['mime_param_folding'] = 1;

 

// Задать "true" если удаленные сообщения не должны отображаться
// Это может привести к замедлению работы приложения
$rcmail_config['skip_deleted'] = false;

 

// Задать "true" для маркировки прочитанных сообщений как удаленных
// "False" на возможность чтения сообщений не влияет маркировка "удаленные"
$rcmail_config['read_when_deleted'] = true;

 

// Установите "true" чтобы не удалять сообщения немедленно
// Используйте 'Purge' для удаления сообщений, помеченных как удаленные
$rcmail_config['flag_for_deletion'] = false;

 

// Значение по умолчанию для keep-alive/check-recent запросов (в секундах)
// Должно быть больше или равно 'min_keep_alive' и меньше чем 'session_lifetime'
$rcmail_config['keep_alive'] = 60;

 

// Если "true" то все каталоги будут проверяться на наличие новых сообщений
$rcmail_config['check_all_folders'] = false;

 

// Если "true", после перемещения/удаления сообщения, следующее сообщение
// будет отображено
$rcmail_config['display_next'] = true;

 

// 0 - не разворачивать обсуждения
// 1 - разворачивать все обсуждения
// 2 - разворачивать обсуждения только если в них есть непрочитанные письма
$rcmail_config['autoexpand_threads'] = 0;

 

// При ответе помещать курсор выше оригинального сообщения
$rcmail_config['top_posting'] = false;

 

// При ответе цитировать оригинальное сообщени
$rcmail_config['strip_existing_sig'] = true;

 

// Отображать подпись
// 0 - Никогда
// 1 - Всегда
// 2 - В новых сообщениях только
// 3 - Пересланных и отвеченных только
$rcmail_config['show_sig'] = 1;

 

// При ответе или пересылке помещать подпись выше оригинального сообщения
$rcmail_config['sig_above'] = false;

 

// Использовать MIME кодировку (quoted-printable) для 8-битных символов в теле сообщения
$rcmail_config['force_7bit'] = false;

 

// Значения полей поиска по умолчанию.
// Массив может содержать список подкаталогов в заголовке, который рассматривается при поиске
// Значение с '*' поддерживает все каталоги, которые не имеют заданого специфического списка
// Отметьте, что имена каталогов должны быть синхронизированы с $rcmail_config['default_imap_folders']
// Пример: array('*' => array('subject'=>1, 'from'=>1), 'Sent' => array('subject'=>1, 'to'=>1));
$rcmail_config['search_mods'] = null;

 

// 'Удалять всегда'
// Эта настройка подразумевает удаление всегда, когда перемещение
// в корзину не удалось. Это необходимо в некоторых случаях, например
// при превишении пользователем квоты. и когда корзина тоже квотируется.
$rcmail_config['delete_always'] = false;

 

// Конец конфигурационного файла
?>

Уф-ф-ф. Много букофф и слов.

Теперь добавим в Apache алиас для возможности входа в каталог . Добавим в httpd.conf следующие настройки:

Alias /mail/ "/usr/local/www/roundcube/"
<Directory "/usr/local/www/roundcube/">
        Options FollowSymLinks
        DirectoryIndex index.php
        AllowOverride All
        Order Deny,Allow
        Allow from all
</Directory>

После этого перечитываем конфигурационный файл Apache:

# apachectl graceful

Открываем окно браузера и набиваем в адресной строке: http://ip_adress_servera/mail/ 

В результате получаем окно авторизации:

Roundcube Webmail

Вот и все, имеем в своем распоряжении работающий web-интерфейс управления почтой. Добавлю для ознакомления еще несколько скриншотов интерфейса. 

После авторизации имеем в своем распоряжении следующий интерфейс управления:

Roundcube Webmail

Окно создания нового сообщения:

 Roundcube Webmail

 Адресная книга:

 

RoundCube Webmail 

Ваша оценка: Нет Средняя: 4.3 (9 голосов)

Спасибо

Нашел нужное

Неудачная попытка входа??

Почуму может писать.

Неудачная попытка входа.

пользователь был создан roundcube пароль 1234

не пукает??

Варианты

А POP3-сессия корректно отрабатывается? (Пример сессии можно найти здесь)

Почтовый сервер поддерживает IMAP?

Re: Неудачная попытка входа??

Не пукает, плять? А сунь туды куй!

Re: Неудачная попытка входа??

К чему это?

Если нечего сказать по сути вопроса, может стоит промолчать? ;)

а такой вопрос. имеем

а такой вопрос.

имеем почтовый сервер, IMAP, POP3 имеются. база пользователей в MySQL

Как можно заставить мордашку менять пароль юзерам? 

Просьба даный вопрос

Просьба даный вопрос разместить на форуме.

Спасибо.

Вы бы не могли подскозать,

Вы бы не могли подскозать, что вы водили в поле регистрации ? Откуда вы брали логин и пароль ? У меня появляеться ошибка connection to Imap server failed. Подскажите пожалуйста.

Ожидаю этот вопрос на

Ожидаю этот вопрос на форуме...

Небольшая подсказка - веб-интерфейс не может подключиться по IMAP-у к серверу.
 

При регистрации возникает

При регистрации возникает ошибка:

IMAP Error in /usr/local/www/apache22/data/roundcube/program/include/rcube_imap.php (192): Login failed for admin [at] mydomain [dot] com from 10.96.0.4. AUTHENTICATE CRAM-MD5: A0001 NO [AUTHENTICATIONFAILED] Authentication failed. 

Подскажите, в чём проблема? 

Подскажите, в чём проблема? 

Давайте перенесем данный

Давайте перенесем данный вопрос на форум.

Спасибо за понимание.

Не могу зайти в

Не могу зайти в roundcube...

Логин, пароль - ошибок нет, в логах всё хорошо, а список папок не раскрывается, на экране остаётся форма ввода логина пароля, в адресной строке урл сменился /roundcube/?_task=mail, список папок не раскрывается.

Подскажите, кто может, в чем проблема???

smtp, pop3, imap настроены и работают... конфигурация:  freebsd+dovecot+postfix+mysql+postfixadmin+roundcube

Auth Type CRAM-MD5

Из конфига: // 0 - не

Из конфига:

// 0 - не расширять потоки

// 1 - расширить все потоки автоматически
// 2 - расширять потоки только для нечитаемого сообщения

 

Автор,

 

1. Какие потоки? К IMAP-серверу? Может быть разворачивание обсуждений?

2. Какие нечитаемые сообщения? С неизвестной кодировкой? Может быть 'непрочитанные' сообщения?

 

Вводите людей в заблуждение.

 

1. Эта опция не имеет

1. Эта опция не имеет никакого отношения к IMAP-серверу, поскольку находится в секции конфигурации интерфейса. Для чего именно будут создаваться треды - затрудняюсь ответить. Комментариев по этому поводу в конфигурационном файле нету, поэтому оставил значение по дефолту - 0.

Обсуждения - пожалуйста. Буду только рад. Для этого и существует форум.

2. Да, согласен. 'Непрочитанные' - более корректный перевод. Пофиксил.

Вы меня не поняли или я

Вы меня не поняли или я ненарошно запутал Вас понятием "обсуждения" :)

 

Разобрался.

 

В Roundcube сообщения могут представляться пользователю в двух видах: список или обсуждения.

"Обсуждения" имел ввиду обсуждения в интерфейсе roundcube'а, там "обсуждения" - древовидный список сообщений, состоящий из оригинального сообщения и всех сообщений-ответов на этот оригинальный мессаг.

 

// 0 - не разворачивать обсуждения

// 1 - разворачивать все обсуждения

// 2 - разворачивать обсуждения только если в них есть непрочитанные письма

 

Т.е. threads используется в непривычном нам с вами понятии (например, многопоточная обработка), а лишь как разворачивающийся список сообщений.

Спасибо за обьяснения. В

Спасибо за обьяснения. В статье уже исправил. 

P.S. Нужно будет самому попробовать...

Никто не сталкивался,

Никто не сталкивался, Roundcube чувствителен к регистру пользователя, как можно его научить понимать любой регистр?

Например логин: andrey, если ввести Andrey то уже скажет ошибка.

В моем случае все работает

В моем случае все работает корректно. Копайте в сторону IMAP-сервера.

Просмотреть конфиги - сейчас нету возмножности. Перенесите вопрос на форум, укажите какой MDA используете и желательно предоставление конфигурационных файлов...

 Вобщем если создаю ящик с

 Вобщем если создаю ящик с большой буквой например: Test [at] mydomain [dot] com то raundcube принимает и с маленькой и с большой, старые ящики только с маленькой... :(

Предлагаю разбираться с

Предлагаю разбираться с данным вопросом на форуме, чтобы не флудить в комментариях...

Самая нормальная доходчивая

Самая нормальная доходчивая статейка, у меня все вышло кроме (SSL/TLS) я просто за коментил

Вот и отлично :) Рад, что

Вот и отлично :)

Рад, что пригодилась.

Re: Вот и отлично :) Рад, что

Как снять ограничение на отправку писем?

Re: Вот и отлично :) Рад, что

Какие именно органичения? На размер вложенного файла, или, например, на количество писем в минуту?..

Re: RoundCube Webmail - еще один почтовый веб-интерфейс

Подскажите - а как можно настроить на сервисы Яндекса и Майла - его, пробую согласно инструкции, изменить Хост и IMAP 993 и SMTP 465 порты для соединения с яндексом, не взлетает, хостинг в Германии.
IMAP Error: Login failed for admin [at] site [dot] ru (Почта для домена) from ай-пи (X-Forwarded-For: мой айпи ). Empty startup greeting (imap.yandex.ru:993) in /www/mail.site.ru/program/include/rcube_imap.php on line 191 (POST /?_task=login&_action=login)
Думаю для многих актуальная инструкция была бы - если оформить отдельным постом!

Re: RoundCube Webmail - еще один почтовый веб-интерфейс

С такими вопросами - на форум, а не в комменты. Там можно будет заняться обсуждением.

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".

Вставай, Україно!

Литература