- Настройка почтового веб-интерфейса RoundCube
- Раздел General configuration
- Раздел Logging & Debugging
- Раздел Database setup
- Раздел IMAP Settings
- Раздел SMTP Settings
- Раздел Display settings & user prefs
- Комментариев: 2
- Установка и использование Roundcube на CentOS
- Настройка веб-сервера
- Установка и запуск nginx
- Установка PHP и PHP-FPM
- Настройка NGINX + PHP-FPM
- Сервер баз данных
- Устанавливаем и настраиваем Roundcube Webmail
- SSL и TLS
- Настройка аутентификации на сервере исходящей почты
- Добавление почтового сервера
- Несколько доменов без выпадающего списка
- Брендирование (свой логотип и название)
- Кнопка добавления письма в СПАМ
- Полезные настройки
- 1. Создание писем в формате HTML
- Возможные ошибки
Настройка почтового веб-интерфейса RoundCube
В новогодние праздники настраивал очередной сервер на FreeBSD. В этот раз уже на 8-ой стабильной ветке этой системы. как же быстро бежит время. Но речь не об этом. Т.к. времени было достаточно, решил в качестве бонуса заказчику установить web-интерфейс для работы с почтовым сервером внутри предприятия.
Ещё пару-тройку лет назад качество web-интерфейсов (freeware) оставляло желать лучшего. Сейчас ситуация изменилась, пример тому — RoundCube Webmail. Если совсем кратко, RoundCube Webmail написан на PHP с использованием CSS, XHTML и AJAX. Из основных возможностей для себя выделил следующее:
- Поддержка мультиязычности
- Возможность лёгкого развертывания системы
- Поддержка IMAP
- Простая адресная книга
- Поддержка внешнего SMTP сервера
- Расширенный пользовательский интерфейс
- Неограниченное количество пользователей и сообщений
- Полное изменение внешнего вида с помощью скинов
Итак, устанавливать будем из портов (если дерево портов у вас не обновлено, советую предварительно это сделать).
cd /usr/ports/mail/roundcube/
make install
Т.к. планировалось использовать исключительно MySQL, именно её и оставляем в опциях. Собственно MySQL там по умолчанию и опции получается не трогаем.
Теперь необходимо создать новую базу данных и пользователя.
# mysql -u root -p
mysql> create database roundcube;
mysql> grant all on roundcube.* to ’roundcube’@’localhost’ identified by ‘rouncube_password’;
mysql> flush privileges;
Создать таблицы базы данных, используя запросы, которые находятся в ‘SQL/*.initial.sql’.
Поскольку ранее мы определили БД MySQL, то воспользуемся файлом mysql.initial.sql:
# mysql -u roundcube -p roundcube
В конфигурационный файл Apache (httpd.conf) добавим следующие настройки:
alias /mail/ «/usr/local/www/roundcube/»
Options none
DirectoryIndex index.php
AllowOverride Limit
Order Deny,Allow
Allow from all
Собственно первая часть настройки закончена и можно переходить к следующему этапу. Зайдем web-броузером на сервер с RoundCube:
Тут всё понятно — жмём «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.
Если считаете статью полезной,
не ленитесь ставить лайки и делиться с друзьями.
Комментариев: 2
Не работает указанная почта два дня.
Привет! На работе пользуюсь прогой roundcube. И IT-шники говорят, что проблема визуализировать входящие сообщения в виде бегущей строки не реальна. Но найдя плагин в инете HTML5_Notifier, понял что это не так. ВОПРОС: могу я этот плагин запустить на этой почтовой программе(мы ее просматриваем в браузере). Я ее скачал, а что дальше делать не знаю. Если мне этого сделать нельзя, то как попросить it-шников это сделать. Заранее благодарен за ответ.
Источник
Установка и использование Roundcube на CentOS
Разберем ситуацию, когда необходимо «с нуля» установить Roundcube на выделенный сервер. Сначала мы настроим его на работу с одним удаленным почтовым сервером, затем — несколькими. В данной инструкции будет применяться операционная система Linux CentOS и веб-сервер NGINX + php-fpm.
Настройка веб-сервера
Roundcube является веб-приложением и для работы требует веб-сервер. В данной инструкции мы будем использовать связку NGINX + PHP + PHP-FPM.
Установка и запуск nginx
Установку выполняем следующими командами.
yum install epel-release
yum install nginx
После установки разрешаем автозапуск nginx и стартуем его:
systemctl enable nginx
systemctl start nginx
Открываем веб-браузер на любом компьютере локальной сети и заходим по адресу http:// — мы должны увидеть приветствие NGINX:
Установка PHP и PHP-FPM
Roundcube работает как приложение php, поэтому необходимо установить его интерпретатор. Также нам нужен PHP-FPM, так как NGINX не занимается обработкой скриптов php.
Выполняем установку компонентов:
yum install php php-fpm
. после запускаем PHP-FPM:
systemctl enable php-fpm
systemctl start php-fpm
Настройка NGINX + PHP-FPM
Открываем конфигурационный файл PHP-FPM:
Задаем настройку для параметра listen:
systemctl restart php-fpm
Теперь открываем конфиг nginx:
Внутри секции server добавим:
\.php$ <
set $root_path /usr/share/nginx/html;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $root_path$fastcgi_script_name;
include fastcgi_params;
fastcgi_param DOCUMENT_ROOT $root_path;
>
Редактируем секцию location:
location / <
.
index index.php;
>
Перезапускаем nginx и php-fpm:
systemctl restart nginx
Создаем файл index.php в root-каталоге nginx:
Открываем браузер и переходим по адресу http:// — должна открыться страница с отображением параметров php:
Сервер баз данных
Также для Roundcube нужна СУБД — мы установим MariaDB:
yum install mariadb-server
Запускаем сервис базы данных + разрешаем его автозапуск:
systemctl start mariadb
systemctl enable mariadb
Задаем пароль для суперпользователя mariadb:
mysqladmin -u root password
Устанавливаем компоненты для работы php с mysql:
yum install php-mysql php-mysqli
systemctl restart php-fpm
Снова открываем страницу http:// — должен появится раздел mysql:
Устанавливаем и настраиваем Roundcube Webmail
Открываем страницу загрузки Roundcube. Копируем ссылку на LTS-версию продукта (стабильную):
Используем ссылку, чтобы загрузить архив программы:
* на момент написания инструкции LTS версия была 1.1.12.
Создаем каталог для размещения файлов Roundcube:
И распаковываем архив в созданную папку:
tar -C /usr/share/nginx/html/webmail -xvf roundcubemail-*.tar.gz —strip-components 1
Копируем шаблон конфигурационного файла и создаем рабочий конфиг:
cp /usr/share/nginx/html/webmail/config/config.inc.php.sample /usr/share/nginx/html/webmail/config/config.inc.php
Открываем его на редактирование:
Редактируем строку для подключения к СУБД:
* где roundcube:roundcube123 — логин и пароль для доступа к базе данных; localhost — сервер базы данных; roundcubemail — имя базы данных.
Создаем следующие строки:
$config[‘drafts_mbox’] = ‘Drafts’;
$config[‘junk_mbox’] = ‘Junk’;
$config[‘sent_mbox’] = ‘Sent’;
$config[‘trash_mbox’] = ‘Trash’;
$config[‘create_default_folders’] = true;
* первая строка разрешает установку портала. Остальные — указывают на необходимость создания папок по умолчанию, если их нет. Без данной настройки, если не создавались папки другим клиентом, веб-клиент может выдавать ошибки при перемещении писем, например, при их удалении.
Задаем владельца apache на папку портала:
chown -R apache:apache /usr/share/nginx/html/webmail
* несмотря на то, что наш сервер обрабатываем скрипты с помощью php-fpm, работает последний по умолчанию от apache.
Создаем в MariaDB базу и пользователя для roundcubemail:
. система запросит пароль — вводим тот, что задавали при установке MariaDB.
> CREATE DATABASE roundcubemail DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
> GRANT ALL PRIVILEGES ON roundcubemail.* TO roundcube@localhost IDENTIFIED BY ’roundcube123′;
* данными командами мы создаем базу данных roundcubemail и пользователя roundcube с паролем roundcube123. Обратите внимание, что если в вашем случае будут использоваться другие пользователь, пароль и база данных, то следует внести соответствующие изменения в настройку самого roundcube, которую мы выполняли ранее.
Загружаем в созданную базу данные:
mysql -uroot -p roundcubemail /webmail/installer/.
В самом низу нажимаем по кнопке Next. Если кнопка будет неактивна, проверяем, что нет ошибок (NOT OK):
На следующей странице мы создаем конфигурационный файл.
а) вводим данные для подключения к СУБД:
б) настраиваем подключение к удаленному почтовому серверу:
* в данном примере мы указываем сервер 192.168.0.15 с доступом по IMAP.
в) для отправки сообщений нужно использовать следующий удаленный сервер:
* также указан почтовый сервер 192.168.0.15.
г) после окончания правки конфигурации, кликаем по CREATE CONFIG:
Конфигурационный файл создан — нажимаем CONTINUE, чтобы продолжить установку:
Проверяем, что все пункты находятся в состоянии OK. Установка выполнена.
Открываем конфигурационный файл roundcube:
Запрещаем установку портала:
После удаляем папку с установочными скриптами:
\rm -R /usr/share/nginx/html/webmail/installer
И заходим в браузере по адресу http:// /webmail/. — должна открыться страница аутентификации пользователя. Пока не вводим никаких данных.
SSL и TLS
Если почтовый сервер поддерживает/требует SSL или TLS соединения, то открываем конфигурационный файл roundcube:
.
$config[‘default_host’] = ‘tls://192.168.0.15’;
.
$config[‘smtp_server’] = ‘ssl://192.168.0.16’;
.
* в данном примере мы указали, что подключение к серверу по IMAP выполняется с использованием TLS, а по SMTP — по SSL.
Открываем браузер и переходим по адресу http:// /webmail/. — входим в систему под пользователем и паролем одной из почтовых учетных записей. Вход должен выполнить успешно и мы должны увидеть письма, находящиеся в почтовом ящике.
Настройка аутентификации на сервере исходящей почты
Для возможности отправлять письма, многие почтовые MTA требуют авторизации пользователя. Как правило, используются логин и пароль такие же, как на подключение к почтовому ящику.
И так, Roundcube должен отправлять данные для smtp-аутентификации. Открываем конфигурационный файл:
Добавим такие строки:
$config[‘smtp_user’] = ‘%u’;
$config[‘smtp_pass’] = ‘%p’;
* мы указали использовать данные, под которыми зашел текущий пользователь, для авторизации на SMTP .
Переходим к нашей странице http:// /webmail/. — пробуем отправить письмо. Должно все получиться.
Добавление почтового сервера
Добавим еще один сервер почты в Roundcube. Открываем конфигурационный файл:
Находим нашу настройку:
$config[‘default_host’] = array(‘tls://192.168.0.15’, ‘tls://192.168.0.16’);
* мы изменили тип записи, указав, что это массив (array) и через запятую перечислили два сервера — 192.168.0.15 и 192.168.0.16.
Переходим на страницу авторизации Roundcube http:// /webmail/. — мы должны увидеть выпадающий список наших серверов:
Несколько доменов без выпадающего списка
Как правило, пользователям неудобно выбирать нужный сервер. Это может их сбить с толку.
Чтобы Roundcube автоматически выбирал почтовый сервер, внесем изменения в наш конфигурационный файл:
.
$config[‘default_host’] = ‘tls://imap.%s’;
.
$config[‘smtp_server’] = ‘tls://smtp.%s’
.
* мы опять вернули старый формат для нашей записи default_host и преобразовали адрес с помощью переменной %s — она позволяет подставлять в имя сервера вторую часть (после @) вводимого email адреса. Например, если мы авторизуемся под пользователем master@dmosk.ru, то Roundcube станет подключаться к серверу imap.dmosk.ru.
Чтобы данная настройка корректно работала, необходимо, чтобы сервер мог разрешать имена серверов для подключения в IP-адреса. Для этого все хосты imap и smtp для обслуживаемых почтовых доменов должны быть в DNS-сервере, к которому обращается сервер Roundcube. Или нужные записи можно прописать в файле /etc/hosts.
Брендирование (свой логотип и название)
Roundcube можно настроить для отображения вашего логотипа и названия. Для этого открываем конфигурационный файл:
Добавляем строки (или редактируем):
$config[‘skin_logo’] = ‘images/logo.png’;
$config[‘product_name’] = ‘Dmosk Roundcube Webmail’;
* skin_logo указывает путь относительно каталога roundcube (но если указать первым символом /, то путь будет относительно каталога с темой — это может быть полезным, если для каждой темы должен быть свой логотип); product_name — задает название в нижней части формы авторизации.
Создаем каталог для хранения изображений:
. и копируем туда наш логотип logo.png. Для копирования файла на сервер Linux можно воспользоваться программой WinSCP.
Открываем веб-интерфейс и проверяем, что логотип и название поменялись.
Кнопка добавления письма в СПАМ
По умолчанию, в roundcube нет возможности быстро отметить письмо как нежелательное. Для этого нужно установить плагин. Рассмотрим установку дополнения Roundcube-Plugin-Mark-as-Junk-2.
Для этого переходим на страницу проекта в GitHub и копируем ссылку на последнюю версию архива:
Используем скопированную ссылку, чтобы загрузить плагин на сервер:
Распаковываем скачанный архив:
Переносим распакованный каталог в папку с плагинами roundcube:
mv roundcube-markasjunk2-master /usr/share/nginx/html/webmail/plugins/markasjunk2
* обратите внимание, что мы переименовываем roundcube-markasjunk2-master в markasjunk2.
Открываем конфигурационный файл:
Находим строку с плагинами:
. и дописываем в нее наш плагин:
Готово. Переходим в roundcube и обновляем страницу. Мы должны увидеть кнопку СПАМ в панели действий:
Полезные настройки
В данном разделе рассмотрим настройки, которые могут пригодиться в ходе эксплуатации roundcube.
1. Создание писем в формате HTML
По умолчанию, все письма создаются в текстовом формате. Данное поведение можно изменить в настройках пользователя. Однако, если мы хотим, чтобы у всех пользователей по умолчанию письма создавались в HTML, открываем конфигурационный файл:
- 0 — никогда.
- 1 — всегда.
- 2 — при ответе на HTML-сообщение.
- 3 — при пересылке или ответе на HTML-сообщение.
- 4 — всегда, кроме ответа на текстовое сообщение.
Возможные ошибки
1. Неудачное соединение с IMAP сервером.
Появляется при попытке авторизоваться в Roundcube.
Причина: как правило, недоступен IMAP-сервер или Roundcube неправильно настроен на подключение к серверу.
Решение: проверяем, что сервер доступен по сети. Проверяем настройки SSL и TLS по методу, описанному выше.
2. SMTP ошибка (554): Невозможно добавить получателя XXX (5.7.1 : Relay access denied)
Ошибка появляется при попытке отправить письмо.
Причина: SMTP-сервер не разрешает удаленному хосту отправку сообщений. Для этого требуется пройти аутентификацию.
Решение: есть два способа устранить ошибку:
1. Настроить аутентификацю в Roundcube по методу, описанному выше.
2. Также можно решить проблему, добавив наш хост Roundcube в качестве relay на почтовом сервере. Данный способ не является правильным с точки зрения безопасности и его рекомендуется применить для временного использования.
В качестве SMTP-сервера могут использоваться разные MTA. Приведем пример для разрешения отправки писем в Postfix. Открываем его конфигурационный файл:
Редактируем строку mynetworks:
* где mynetworks — список доверенных узлов, которым можно будет отправлять сообщения без дополнительных проверок. В данном примере мы добавили хост 192.168.0.14.
Источник