В новогодние праздники настраивал очередной сервер на FreeBSD. В этот раз уже на 8-ой стабильной ветке этой системы… как же быстро бежит время… Но речь не об этом. Т.к. времени было достаточно, решил в качестве бонуса заказчику установить web-интерфейс для работы с почтовым сервером внутри предприятия.
Ещё пару-тройку лет назад качество web-интерфейсов (freeware) оставляло желать лучшего. Сейчас ситуация изменилась, пример тому — RoundCube Webmail. Если совсем кратко, RoundCube Webmail написан на PHP с использованием CSS, XHTML и AJAX. Из основных возможностей для себя выделил следующее:
- Поддержка мультиязычности
- Возможность лёгкого развертывания системы
- Поддержка IMAP
- Простая адресная книга
- Поддержка внешнего SMTP сервера
- Расширенный пользовательский интерфейс
- Неограниченное количество пользователей и сообщений
- Полное изменение внешнего вида с помощью скинов
Итак, устанавливать будем из портов (если дерево портов у вас не обновлено, советую предварительно это сделать).
cd /usr/ports/mail/roundcube/
Т.к. планировалось использовать исключительно MySQL, именно её и оставляем в опциях. Собственно MySQL там по умолчанию и опции получается не трогаем.
make install
Теперь необходимо создать новую базу данных и пользователя.
# mysql -u root -p
Создать таблицы базы данных, используя запросы, которые находятся в ‘SQL/*.initial.sql’.
mysql> create database roundcube;
mysql> grant all on roundcube.* to 'roundcube'@'localhost' identified by 'rouncube_password';
mysql> flush privileges;
Поскольку ранее мы определили БД MySQL, то воспользуемся файлом mysql.initial.sql:
# mysql -u roundcube -p roundcube < /usr/local/www/roundcube/SQL/mysql.initial.sql
В конфигурационный файл Apache (httpd.conf) добавим следующие настройки:
alias /mail/ "/usr/local/www/roundcube/"
Собственно первая часть настройки закончена и можно переходить к следующему этапу. Зайдем web-броузером на сервер с RoundCube:
Options none
DirectoryIndex index.php
AllowOverride Limit
Order Deny,Allow
Allow from all
http://[IP-вашего-сервера-или-его-имя]/mail/installer/
Тут всё понятно - жмём "START INSTALLATION"
Обращаем внимание чего не хватает системе для правильной установки (выделено оранжевым). Сообщения о неостающих БД, отличных от MySQL, игнорируем. Спускаемся вниз страницы и жмём "Next", где нам предложат ввести некоторые параметры:
Раздел General configuration
- product_name - My_test_Webmail - название вашего сервиса. Будет высвечиваться в заголовке станичек
- temp_dir - /var/www/mail/temp/ - оставляем как есть, это папка для темпов
- ip_check - проверка клиента по IP во время авторизации сессии. Добавляет секьюрности, но если кто-то будет ходить на мыло через проксю, клиенты с одинаковыми IP будут отваливаться.
- des_key - ключик для шифрования пользовательских IMAP паролей
- enable_caching - кеширование сообщений в локальной базе
- enable_spellcheck - проверка орфографии. Чуть ниже выбирается движок для проверки
- identities_level - Определяет, что пользователи могут сделать со своими идентификаторами
Раздел Logging & Debugging
- debug_level - уровень детализации логов
- log_driver - механизм логирования. В файл или через syslog
- log_dir - /var/www/mail/logs/ - каталог для логов
- syslog_id - используемая строка идентификации, если задействован драйвер ошибок 'syslog'
- syslog_facility - какие средства (facility) используются, если задействован драйвер ошибок 'syslog'. Для ознакомления с возможными значениями смотрите инсталятор.
Раздел Database setup
В данном разделе указываете параметры подключения к базе данных. Те, что указывали при создании roundcubemail
- Database type - MySQL
- Database server - localhost
- Database name - roundcube
- Database user name - roundcube
- Database password - пароль
Раздел IMAP Settings
В данном разделе указываются настройки подключения IMAP сервера
- default_host - 127.0.0.1 - имя хоста IMAP сервера. Т.к. мыло крутится локально, указываем IP локалхоста
- default_port - 143 - порт IMAP по умолчанию
- username_domain - myorg.net - имя домена. Будет автоматически дописываться к логину пользователя
- auto_create_user - автоматическое создание пользователей roundcube, когда они в первый раз залогинятся.
- sent_mbox - каталог, куда будет складываться отправленная почта
- trash_mbox - корзина для удалённых писем
- drafts_mbox - каталог для черновиков
- junk_mbox - каталог для спама
Раздел SMTP Settings
В данном разделе указываются настройки SMTP
- smtp_server - 127.0.0.1 - имя хоста SMTP сервака. Т.к. мыло крутится локально, указываем IP локалхоста
- smtp_port - 25 - порт SMTP по умолчанию.
- smtp_user/smtp_pass - имя и пароль SMTP пользователей, если требуется для SMTP сервака. Чуть ниже галочка Use the current IMAP username and password for SMTP authentication (использовать настройки имени и пароля из IMAP)
- smtp_log - логировать ли отправку сообщений
Раздел Display settings & user prefs
Настройки отображения и пользовательские
- language - ru_RU - Язык
- skin - default - шкурка. Список шкурок можно глянуть в /var/www/mail/skins
- pagesize - 40 - количество сообщений в списке
- prefer_html - предпочитать отображение сообщений в HTML
- preview_pane -
- htmleditor - создавать сообщения в формате HTML
- draft_autosave - автосохранение в черновики каждые N минут.
- mdn_requests - Если пришло письмо с подтверждением о доставке то: Спросить пользователя / отправить отчёт автоматически / забить
- mime_param_folding- как упаовывать длинные или не ASCII имена файлов аттачей
На этом настройку roundcube можно считать завершенной. Кнопкой "Create config" открываем страничку с созданными конфиг-файлами. Её содержимое необходимо поместить в соответствующие файлы main.inc.php и db.inc.php в каталоге /var/www/mail/config. Не забудьте проставить ?> в начале и конце файлов.
Кроме того здесь же можно проверить работу roundcube + SMTP + IMAP сервера. После установки ОБЯЗАТЕЛЬНО удалите инсталляционный каталог.
# rm -rf /var/www/mail/installer/
Если всё сделано правильно, то вы получите работающий webmail.
Источник http://mdex-nn.ru/page/nastrojka-pochtovogo-veb-interfejsa-roundcube
http://deathstar.name/nastrojka-pochtovogo-servera-na-baze-eximdovecotspamassassinclamav-c-veb-mordami-veximroundcube
но тут уже не все — из Vexim я убрал хранение паролей в открытом виде из скрипта Vexim и добавил указание IP адрреса через который нужно отправлять письма с какого либо домена