Решил расширить стандартные возможности почтового web-интерфейса Roundcube с помощью плагинов. Возможностями некоторых из них и воспользуемся... Список плагинов, рассмотреных в статье следующий (кликнув на ссылку, попадаем сразу к описанию процесса настройки):
Значительное число плагинов Roundcube доступно из репозитория плагинов Roundcube. Пока опробованы только некоторые из них. Если будете тестировать какие-либо новые плагины, не затронутые в этой статье - просьба описать процес установки и поделиться через форму обратной связи.
Плагин Additional_message_headers позволяет добавить для писем, отправляемых через web-интерфейс Roundcube, дополнительные хэдеры, такие как:
Конечно же, чем больше дополнительной информации, тем проще будет любому админинистратору при ковырянии "что, кому и откуда".
Установка плагина не составляет труда. Для активации плагина необходимо добавить его в список подключенных плагинов:
# cat /usr/local/www/roundcube/config/main.inc.php | grep additional_message_headers $rcmail_config['plugins'] = array('additional_message_headers'); |
Также необходимо создать конфигурационный файл модуля - config.inc.php и поместить его в каталог плагина additional_message_headers. Содержимое config.inc.php такое:
<?php $rcmail_config['additional_message_headers']['X-Remote-Browser'] = $_SERVER['HTTP_USER_AGENT']; ?> |
Теперь в письмах, при просмотре заголовков можно обнаружить такие записи:
X-Remote-Browser: Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.121 Safari/535.2 X-Originating-IP: 192.168.206.114 X-RoundCube-Server: 192.168.197.114 |
Плагин AntiBruteForce, судя по описанию, предотвращает BruteForce перебором паролей методом автоматической блокировки (как именно я так и не понял из описания, но думаю, что разберемся по ходу настройки).
Загрузим архив с плагином в каталог /usr/local/www/roundcube/plugins, распакуем архив и удалим его, чтобы не засорять файловую систему:
# cd /usr/local/www/roundcube/plugins # fetch http://muff.kiev.ua/files/antiBruteForce.tar antiBruteForce.tar 100% of 18 kB 40 MBps # tar -xzf antiBruteForce.tar # rm antiBruteForce.tar |
Как оказалось, права на созданный каталог выставлены в 777. Этот непорядок необходимо устранить. Выставим на каталог права 755:
# chmod -R 755 antiBruteForce |
Внутри каталога antiBruteForce лежит PHP-скрипт antiBruteForce.php. Советую отредактировать переменные, которые заданы в начале скрипта (для меня сюрпризом было то, что все комментарии на португальском... воспользовался переводчиком). В моем случаем переменные выставлены в такое значение:
private $registers="logs/userlogins"; // Куда писать логи попыток авторизации |
Потом необходимо активировать плагин, добавив его в массив плагинов в файле конфигурации main.inc.php:
# cat /usr/local/www/roundcube/config/main.inc.php | grep antiBruteForce $rcmail_config['plugins'] = array('antiBruteForce'); |
На этом настройку плагина antiBruteForce можно считать законченой. После указанного количества попыток (переменная $attempts) неверной авторизации можно будет наблюдать такое окошко:
Плагин Archive добавляет новую кнопку для перемещения сообщения в архивный каталог, который конфигурируется пользователем.
Для активации плагина необходимо добавить его в список подключенных плагинов:
# cat /usr/local/www/roundcube/config/main.inc.php | grep archive $rcmail_config['plugins'] = array('archive'); |
После активации плагина необходимо создать каталог, в который и будем перемещать письма для архивации:
Следующий шаг - указываем каталог, в котором письма будут архивироваться:
В результате на панели инструментов Roundcube появится новая кнопка "Переместить выбранное в архив".
Плагин Compose addressbook позволяет использовать адресную книгу во время компоновки нового письма.
Скачаем архив с плагином Compose addressbook и распакуем его в каталог плагинов Roundcube. После распаковки удаляем архив, чтобы не засорять файловую систему.
ВНИМАНИЕ! Даная версия плагина только для Roundcube 0.6 и выше.
# cd /usr/local/www/roundcube/plugins |
Создадим файл конфигурации плагина, копированием из предложенного примера:
# cp compose_addressbook/config.inc.php.dist compose_addressbook/config.inc.php |
Даный плагин зависит от плагина jqueryui, поэтому в main.inc.php активируем оба:
# cat /usr/local/www/roundcube/config/main.inc.php | grep compose_addressbook $rcmail_config['plugins'] = array('compose_addressbook', 'jqueryui'); |
На этом настройку плагина можно считать оконченной. При составлении нового письма на панели инструментов появится кнопка "Show Address Book" и, соответственно, можно будет сразу выбрать получателей из адресной книги прямо во время компоновки письма.
Плагин Custom From добавляет в режиме создания письма кнопку, нажав на которую, выпадающий список "От кого:" заменяется полем ввода даных.
Скачаем архив с плагином Custom from и распакуем его в каталог плагинов Roundcube. После распаковки удаляем архив, чтобы не засорять файловую систему.
# cd /usr/local/www/roundcube/plugins |
Активируем плагин, добавив его в массив подключенных плагинов:
# cat /usr/local/www/roundcube/config/main.inc.php | grep custom_from $rcmail_config['plugins'] = array('custom_from'); |
Вот и все... Настройка плагина завершена.
Плагин Custom logo пригодится, когда почтовый сервер мультидоменный. Принцип его работы заключается в отображении разных логотипов, в зависимости от того, какое доменное имя содержится в почтовом адресе пользователя.
Скачаем архив с плагином Custom logo и распакуем его в каталог плагинов Roundcube. После распаковки удаляем архив, чтобы не засорять файловую систему.
# cd /usr/local/www/roundcube/plugins |
Создадим файл конфигурации, копированием из предложеного примера:
# cp custom_logo/config.inc.php.dist custom_logo/config.inc.php |
Если просмотреть файл конфигурации, то становится понятно, что логотипы необходимо хранить в каталоге /usr/local/www/roundcube/plugins/custom_logo/images с форматом имени файла %d_logo.png где %d - доменная часть e-mail пользователя.
Активируем плагин, добавив его в массив подключенных плагинов:
# cat /usr/local/www/roundcube/config/main.inc.php | grep custom_logo $rcmail_config['plugins'] = array('custom_logo'); |
В случае, если логотип для определенного домена не подгружен, отображается стандартный логотип Roundcube.
Плагин сustom title позволяет изменять заголовок страницы, добавляя, например, имя текущего пользователя. Скачаем архив с плагином в каталог плагинов Roundcube и распакуем его. Также удалим архив, чтобы не засорять файловую систему:
# cd /usr/local/www/roundcube/plugins |
Активируем плагин, добавив его в список подключенных плагинов:
# cat /usr/local/www/roundcube/config/main.inc.php | grep custom_title $rcmail_config['plugins'] = array('custom_title'); |
На этом базовая настройка модуля завершена.
Плагин drag upload реализовывает возможность прикреплять файлы к письму простым перетаскиванием. Скачаем архив с плагином в каталог плагинов Roundcube и распакуем его. После этого удалим архив, чтобы не засорять файловую систему:
# cd /usr/local/www/roundcube/plugins |
Активируем плагин, добавив его в список подключенных плагинов:
# cat /usr/local/www/roundcube/config/main.inc.php | grep drag_upload $rcmail_config['plugins'] = array('drag_upload'); |
На этом базовая настройка модуля завершена.
Плагин emoticons выполняет автоматическую замену смайликов в текстовом виде на графические иконки. Плагин есть в стандартной инсталяции Roundcube. Для активации плагина необходимо всего лишь добавить его в список подключенных плагинов:
# cat /usr/local/www/roundcube/config/main.inc.php | grep emoticons $rcmail_config['plugins'] = array('emoticons'); |
После подключение плагина имеем такую таблицу преобразований:
Текстовое отображение | Графическое отображение |
:) | |
:-) | |
:D | |
:-D | |
:( | |
:-( | |
;) | |
;-) | |
8) | |
8-) | |
:O | |
:-O | |
:P | |
:-P | |
:@ | |
:-@ | |
O:) | |
O:-) | |
:$ | |
:-$ | |
:* | |
:-* | |
:S | |
:-S |
Вот так-то... Однако, данный плагин имеет недостаток (особенно актуально для програмеров и системных администраторов). Если отправлять, например, какой-то кусок кода скрипта в письме, а не вложением - будет выполнена замена по всему скрипту, что не очень удобно.
Даний плагин добавляет возможность переключатель языка на странице авторизации.
Скачаем архив с плагином Language Selector и распакуем его в каталог плагинов Roundcube. После распаковки удалим архив, чтобы не засорять файловую систему.
# cd /usr/local/www/roundcube/plugins |
Создадим конфигурационный файл config.inc.php копированием из предложенного примера:
# cp lang_sel/config.inc.php.dist lang_sel/config.inc.php |
Активируем плагин, добавив запись в конфигурационный файл main.inc.php:
# cat /usr/local/www/roundcube/config/main.inc.php | grep lang_sel $rcmail_config['plugins'] = array('lang_sel'); |
Результат работы модуля:
Действие плагина Login info довольно простое - отображение дополнительной информации на странице авторизации. В ряде случаев эта возможность может оказаться довольно даже полезной.
Скачаем архив с плагином Login info и распакуем его в каталог плагинов Roundcube. После распаковки удаляем архив, чтобы не засорять файловую систему.
# cd /usr/local/www/roundcube/plugins |
Создадим конфигурационный файл config.inc.php примерно следующего содержания (не забываем о кодировке файла - по умолчанию Roundcube отображает страницы в UTF-8):
<?php
/* Login_info plugin */
/* Необходимо вставить сообщение между двумя EOT TAGS:
$rcmail_config['login_info'] = <<<EOT ТЕКСТ СООБЩЕНИЯ ЗДЕСЬ EOT; */ $rcmail_config['login_info'] = <<<EOT <br> <center><b>Пользовательское соглашение</b></center> <br> <table border="0" cellspacing="1" cellpadding="1" align="center" width="90%"> <tbody> <tr> <td> <p>1. Пользуясь возможностями почтового сервера Server_Hostname_Here пользователь автоматически принимает условия даного Пользовательского соглашения.</p> <p>2. Даный почтовый сервер Server_Hostname_Here развернут для предоставления услуг электронной почты исключительно сотрудникам Company_Name_Here.</p> <p>3. Использование сервера Server_Hostname_Here способом, не имеющим отношения к трудовому процессу, является нарушением правил использования сети Company_Name_Here и приравнивается к нарушению правил трудовой дисциплины. К нарушениям правил использования сервера Server_Hostname_Here в частности относятся отправка или получение информации следующего содержания:</p> <ul> <li>программное обеспечение, нарушающее авторские права или лицензионные соглашения субъектов или физических лиц;</li> <li>музыкальные или видеоматериалы, нарушающие авторские права исполнителей;</li> <li>материалы порнографического содержания;</li> <li>научные работы, статьи или другую информацию, которая может представлять коммерческую тайну, без предварительного согласования с руководством;</li> <li>сообщения, оскорбляющие других людей, их национальные или религиозные чувства;</li> <li>сообщения политического характера;</li> <li>сообщения с угрозами или элементами шантажа;</li> <li>информация, связанная с деятельностью террористических либо экстремистских группировок или лиц;</li> <li>любая информация, каким-либо образом нарушающая действующее законодательство Украины</li> </ul> <p>4. Категорически запрещается массовая рассылка нежелательных сообщений рекламного или непристойного содержания (спам).</p> <p>5. В случае нарушения правил пользования почтовым сервером Server_Hostname_Here пользователь может быть отключен от данного сервера.</p> <p>6. Запрещается использование сервера Server_Hostname_Here каким-либо способом, приводящим к технической неисправности или причинению вреда данному серверу, другим сетевым ресурсам сети Company_Name_Here или ресурсам сети Интернет. В случае нанесения пользователем сервера Server_Hostname_Here какого-либо ущерба Company_Name_Here, другим организациям или физическим лицам, пользователь несет персональную административную или уголовную ответственность согласно действующего законодавства. Администрация почтового сервера Server_Hostname_Here не несет ответственности за действия пользователя.</p> </td> </tr> </tbody> </table> <br> EOT; ?>
|
Что называется, "Остапа понесло..." - наваял "Правила пользования корпоративным почтовым сервером". Это так - основы, но возможно будет для кого-то базовыми правилами.
Активируем плагин, добавив запись в конфигурационный файл main.inc.php:
# cat /usr/local/www/roundcube/config/main.inc.php | grep login_info $rcmail_config['plugins'] = array('login_info'); |
Пример работы модуля:
Плагин newmail_notifier служит для уведомления пользователя о новом письме, фокусировкой либо же звуком. Для активации модуля необходимо добавить его поддержку в конфигурационный файл main.inc.php:
# cat /usr/local/www/roundcube/config/main.inc.php | grep antiBruteForce $rcmail_config['plugins'] = array('newmail_notifier'); |
Также необходимо создать конфигурационный файл плагина - config.inc.php в каталоге модуля. Содержание config.inc.php такое:
<?php
// Enables basic notification
$rcmail_config['newmail_notifier_basic'] = true; // Enables sound notification
$rcmail_config['newmail_notifier_sound'] = true; ?>
|
Теперь при поступлении нового письма, если окно Roundcube не активно, будет слышно звуковое уведомление.
Плагин Persistent login будет полезным для пользователей, которые не любят авторизовываться каждый раз при заходе в свой почтовый аккаунт. Плагин сохраняет cookie пользователя и автоматически выполняет вход в почтовый аккаунт при следующем посещении пользователем.
Загрузим плагин и поместим его в каталог /usr/local/www/roundcube/plugins:
# cd /usr/local/www/roundcube/plugins |
Активируем плагин, добавив его в массив подключенных плагинов Roundcube:
# cat /usr/local/www/roundcube/config/main.inc.php | grep persistent_login $rcmail_config['plugins'] = array('persistent_login'); |
В базовой поставке плагин готов к работе. Однако, плагин имеет возможность использовать два различных способа работы. Первый - это использование пользовательских cookies (UserData cookie). Второй способ более безопасен - AuthToken cookie.
UserData cookie
Способ не требует никакой дополнительной конфигурации и работает по умолчанию. Информация авторизации пользователя шифруется в cookie.
AuthToken cookie
Этот способ нуждается в активации в файле конфигурации. Активируем даный способ работы:
# cp persistent_login/config.inc.php.dist persistent_login/config.inc.php |
Обращаю внимание на то, что параметр ifpl_use_auth_tokens установлен в значение true. Также стоит обратить внимание на параметр ifpl_login_expire, который задает "время жизни" cookie.
Есть необходимость в создании таблицы в базе данных. Дамп таблицы идет в поставке. Просто "зальем" его в БД Roundcube:
# mysql -u root -p roundcube < persistent_login/sql/mysql.sql |
В результате на странице авторизации можно установить чекбокс "Запомнить меня".
Плагин Rcguard реализовывает вызов reCAPTCHA после определенного количества неудачных попыток авторизации. В идеале плагин Rcguard можно настроить на совмесную работу с antiBruteForce. После 3 неудачных попыток авторизации появляется reCAPTCHA, а после еще 3 неудачных попыток доступ блокируется на определенное время.
Итак, загрузим плагин и поместим его в каталог /usr/local/www/roundcube/plugins:
# cd /usr/local/www/roundcube/plugins |
Ознакамливаемся с README и создаем файл конфигурации, копированием из примера:
# cd rcguard && cp config.inc.php.dist config.inc.php |
Теперь пора разобраться с переменными, которые задаются в config.inc.php. После перевода комментариев имеем следующий результат (свои комменты добавлял):
<?php
/*
* rcguard configuration file */ // Количество ошибочных попыток авторизации перед тем, как будет отображена reCAPTCHA
$rcmail_config['failed_attempts'] = 3;
// Через сколько минут освободить IP (после последней неудачной попытки)
$rcmail_config['expire_time'] = 10;
// Задействовать HTTPS для reCAPTCHA
$rcmail_config['recaptcha_https'] = false;
// Ключи можно получить по адресу http://recaptcha.net/whyrecaptcha.html
// Публиный ключ для reCAPTCHA
$rcmail_config['recaptcha_publickey'] = '6LdtLMoS222222PzwVOwo646bD06ThbACLZI7SIGT'; // Приватный ключ для reCAPTCHA
$rcmail_config['recaptcha_privatekey'] = '6LdtLMoSAAAAAC2ABcoifRtILGnR_d-kTvMdbZdZ'; // Логирование
$rcmail_config['recaptcha_log'] = false; // События не будут логироваться, если задать NULL
// %r - Remote IP // %u - Username $rcmail_config['recaptcha_log_success'] = 'Verification succeeded for %u. [%r]'; $rcmail_config['recaptcha_log_failure'] = 'Error: Verification failed for %u. [%r]'; $rcmail_config['recaptcha_log_unknown'] = 'Error: Unknown log type.'; // Установить true, если используется плагин remember_me $rcmail_config['remember_me'] = false;
// Имя пользовательских cookie для remember_me
$rcmail_config['rememberme_user'] = 'rememberme_user'; // Имя пароля cookie для remember_me
$rcmail_config['rememberme_pass'] = 'rememberme_pass'; // Имя хоста cookie для remember_me
$rcmail_config['rememberme_host'] = 'rememberme_host'; ?>
|
Также не лишним будет изменить язык на русский. Сделать это можно в файле rcguard.js.
Следующий шаг - создание таблицы MySQL. Достаточно просто перенаправить предложенный дамп в БД, которую использует Roundcube:
# mysql -u root -p roundcube < SQL/mysql.initial.sql |
Активируем плагин, добавив его в массив плагинов в файле конфигурации main.inc.php:
# cat /usr/local/www/roundcube/config/main.inc.php | grep rcguard $rcmail_config['plugins'] = array('rcguard'); |
На этом настройка плагина заканчивается. После определенного количества ошибочных попыток авторизации, которое задается параметром failed_attempts, можно наблюдать результаты работы плагина:
Плагин ServerInfo служит для отображения базовой информации о сервере. Также есть возможность добавлять свои поля и использовать переменые.
Скачиваем плагин ServerInfo в директорию плагинов Roundcube. Распаковываем загруженый архив и удаляем его, чтобы не засорять файловую систему:
# cd /usr/local/www/roundcube/plugins # fetch http://muff.kiev.ua/files/roundcube-serverinfo.tar.gz roundcube-serverinfo.tar.gz 100% of 16 kB 39 MBps # tar -xzf roundcube-serverinfo.tar.gz # rm roundcube-serverinfo.tar.gz |
Для включения плагина добавим его в список подключенных плагинов:
# cat /usr/local/www/roundcube/config/main.inc.php | grep serverinfo $rcmail_config['plugins'] = array('serverinfo'); |
Теперь, если зайти в секцию "Настройки", то можно обнаружить новую закладку "О сервере". Однако не вся информация корректна. Для "тюнинга" плагина, скопируем файл config.inc.php.dist в config.inc.php:
# cd /usr/local/www/roundcube/plugins/serverinfo |
Советую ознакомиться с комментариями в файле config.inc.php и отредактировать файл конфигурации под свои нужды. В результате имеем примерно следующий результат:
Плагин sticky notes позволяет оставлять разнообразные заметки.
Скачиваем плагин sticky notes в директорию плагинов Roundcube. Распаковываем загруженый архив и удаляем его, чтобы не засорять файловую систему:
# cd /usr/local/www/roundcube/plugins # fetch http://muff.kiev.ua/files/roundcube-sticky_notes.tar.gz roundcube-sticky_notes.tar.gz 100% of 1625 kB 55 MBps # tar -xzf roundcube-sticky_notes.tar.gz # rm roundcube-sticky_notes.tar.gz |
Создадим файл конфигурации, копированием из предложеного примера:
# cp sticky_notes/config.inc.php.dist sticky_notes/config.inc.php |
Заметки будут храниться в БД. Для создания таблиц воспользуемся предложеным дампом:
# mysql -u root -p roundcube < sticky_notes/SQL/mysql.sql |
Активируем плагин, добавив его в масив подключенных плагинов в файле конфигурации main.inc.php:
# cat /usr/local/www/roundcube/config/main.inc.php | grep sticky_notes $rcmail_config['plugins'] = array('sticky_notes'); |
Результат примерно такой:
Плагин Userinfo служит для отображения некоторой информации о текущем пользователе, создавая новую вкладку в секции "Настройки". Для включения плагина необходимо добавить его в список подключенных плагинов:
# cat /usr/local/www/roundcube/config/main.inc.php | grep userinfo $rcmail_config['plugins'] = array('userinfo'); |
Больше никаких дополнительных настроек не нужно.
Пример работы плагина:
Re: Roundcube - установка и настройка расширений (plugins)
Все хорошо но не могли бы вы были описать настройку sticky notes через веб интерфейс с хоста так сказать
Re: Roundcube - установка и настройка расширений (plugins)
А это уже в зависимости от предоставленых инструментов.
Установка плагина сводится к распаковке модуля в каталог модулей и прописыванию модуля в конфигурационный файл Roundcube.
Re: Roundcube - установка и настройка расширений (plugins)
Распокавал в папку Roundcube/плагины прописал появился плагин в панели почтовика но нет языкавова файла не русского не енглишь может пересмотрите архив
Re: Roundcube - установка и настройка расширений (plugins)
Статья хорошая и полезная!
НО rcguard (капча) не работает.
// Public key for reCAPTCHA
$rcmail_config['recaptcha_publickey'] = '';
// Private key for reCAPTCHA
$rcmail_config['recaptcha_privatekey'] = '';
где брать? Ваши не подходят.
Re: Roundcube - установка и настройка расширений (plugins)
Нашел, необходимо зарегестрировать на google и создать домен идентичный вашему сайту, пусть даже на localhost
Re: Roundcube - установка и настройка расширений (plugins)
Ключи можно получить на recaptcha.net
Редирект перебросит на необходимую страницу (в сентябре 2009 Google купил сервис reCAPTCHA).