Roundcube - установка и настройка расширений (plugins)

  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: SELECT data, created, headers, expire, serialized FROM cache_filter WHERE cid = '2:e7e7f81ba3945383111542d9c10e6b04' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 27.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: UPDATE cache_filter SET data = '<p class=\"rtecenter\"><img alt=\"Roundcube logo\" width=\"140\" height=\"37\" src=\"http://muff.kiev.ua/files/Roundcube.png\" /></p>\n<p class=\"rtejustify\">Решил расширить стандартные возможности почтового web-интерфейса&nbsp;<strong>Roundcube</strong>&nbsp;с помощью плагинов.&nbsp;Возможностями некоторых из них и воспользуемся... Список плагинов, рассмотреных в&nbsp;статье следующий (кликнув на ссылку,&nbsp;попадаем сразу к описанию процесса&nbsp;настройки):</p>\n<ul>\n<li><span style=\"color: #0000ff\"><a href=\"#Additional_message_headers\"><em><strong>Additional_Message_Headers</strong></em></a> </span></li>\n<li><span style=\"color: #0000ff\"><a href=\"#AntiBruteForce\"><em><strong>AntiBruteForce</strong></em></a><em><strong>&nbsp; </strong></em></span></li>\n<li><span style=\"color: #0000ff\"><a href=\"#Archive\"><em><strong>Archive</strong></em></a> </span></li>\n<li><em><strong><a href=\"#Compose_Addressbook\"><span style=\"color: #0000ff\">Compose Addressbook</span></a></strong></em></li>\n<li><span style=\"color: #0000ff\"><em><strong><a href=\"#Custom_From\">Custom From</a></strong></em></span></li>\n<li><em><strong><a href=\"#Custom_logo\"><span style=\"color: #0000ff\">Custom Logo</span></a></strong></em></li>\n<li><em><strong><a href=\"#Custom_title\"><span style=\"color: #0000ff\">Сustom Title</span></a></strong></em></li>\n<li><em><strong><a href=\"#Drag_upload\"><span style=\"color: #0000ff\">Drag Upload</span></a></strong></em></li>\n<li><a href=\"#Emoticons\"><span style=\"color: #0000ff\"><em><strong>Emoticons </strong></em></span></a></li>\n<li><span style=\"color: #0000ff\"><em><strong><a href=\"#Language_Selector\">Language Selector</a></strong></em></span></li>\n<li><em><strong><a href=\"#Login_info\"><span style=\"color: #0000ff\">Login Info</span></a></strong></em></li>\n<li><span style=\"color: #0000ff\"><a href=\"#Newmail_notifier\"><em><strong>Newmail_Notifier</strong></em></a> </span></li>\n<li><em><strong><a href=\"#Persistent_login\"><span style=\"color: #0000ff\">Persistent Login</span></a></strong></em></li>\n<li><span style=\"color: #0000ff\"><a href=\"#Rcguard\"><em><strong>Rcguard</strong></em></a> </span></li>\n<li><em><strong><a href=\"#ServerInfo\"><span style=\"color: #0000ff\">ServerInfo</span></a></strong></em></li>\n<li><span style=\"color: #0000ff\"><em><strong><a href=\"#Sticky_notes\">Sticky Notes</a>&nbsp; </strong></em></span></li>\n<li><span style=\"color: #0000ff\"><a href=\"#Userinfo\"><em><strong>Userinfo</strong></em></a> </span></li>\n</ul>\n<p class=\"rtejustify\">Значительное число плагинов&nbsp;<strong>Roundcube</strong>&nbsp;доступно&nbsp;из&nbsp;<a href=\"http://trac.roundcube.net/wiki/Plugin_Repository\">репозитория плагинов Roundcube</a>. Пока опробованы только некоторые из них. Если будете тестировать какие-либо новые плагины, не&nbsp;затронутые в этой статье&nbsp;- просьба описать процес установки и поделиться через <a href=\"http://muff.kiev.ua/contact\">форму обратной связи</a>.</p>\n<hr />\n<h4 class=\"rtecenter\"><span style=\"color: #0000ff\"><strong><a class=\" FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC\" name=\"Additional_message_headers\">Additional_message_headers</a></strong></span></h4>\n<p class=\"rtejustify\">Плагин <strong>Additional_message_headers</strong> позволяет добавить для писем, отправляемых через web-интерфейс Roundcube, дополнительные хэдеры,&nbsp;такие как:</p>\n<ul>\n<li>X-Remote-Browser</li>\n<li>X-Originating-IP</li>\n<li>X-RoundCube-Server</li>\n</ul>\n<p>Конечно же,&nbsp;чем больше дополнительной информации,&nbsp;тем проще будет любому админинистратору при&nbsp;ковырянии &quot;что,&nbsp;кому и откуда&quot;.</p>\n<p>Установка плагина не составляет труда. Для активации плагина необходимо&nbsp;добавить его в список подключенных плагинов:</p>\n<p><table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td># <strong>cat /usr/local/www/roundcube/config/main.inc.php | grep additional_message_headers<br />\n </strong>$rcmail_config[\'plugins\'] = array(\'<span style=\"color: #ff0000\">additional_message_headers</span>\');</td>\n</tr>\n</tbody>\n</table>\n</p>\n<p class=\"rtejustify\">Также необходимо создать конфигурационный файл модуля - <strong>config.inc.php</strong> и поместить его в каталог плагина <strong>additional_message_headers</strong>. Содержимое <strong>config.inc.php</strong> такое:</p>\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td bgcolor=\"#333333\">\n<p><span style=\"color: #3366ff\">&lt;?php </span></p>\n<p><span style=\"color: #3366ff\">$rcmail_config[\'additional_message_headers\'][\'X-Remote-Browser\'] = $_SERVER[\'HTTP_USER_AGENT\'];<br />\n $rcmail_config[\'additional_message_headers\'][\'X-Originating-IP\'] = $_SERVER[\'REMOTE_ADDR\'];<br />\n $rcmail_config[\'additional_message_headers\'][\'X-RoundCube-Server\'] = $_SERVER[\'SERVER_ADDR\'];</span></p>\n<p><span style=\"color: #3366ff\">?&gt;</span></p>\n</td>\n</tr>\n</tbody>\n</table>\n<p class=\"rtejustify\">Теперь в письмах, при просмотре заголовков можно обнаружить такие записи:</p>\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td><strong>X-Remote-Browser</strong>: Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.121 Safari/535.2<br />\n <strong>X-Originating-IP</strong>: 192.168.206.114<br />\n <strong>X-RoundCube-Server</strong>: 192.168.197.114</td>\n</tr>\n</tbody>\n</table>\n<p class=\"rtejustify\">&nbsp;</p>\n<hr />\n<h4 class=\"rtecenter\">&nbsp;<span style=\"color: #0000ff\"><strong><a class=\" FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC\" name=\"AntiBruteForce\">AntiBruteForce</a></strong></span></h4>\n<p class=\"rtejustify\">Плагин <strong>AntiBruteForce</strong>, судя по описанию,&nbsp;предотвращает <strong>BruteForce</strong> перебором паролей методом автоматической блокировки (как именно я&nbsp;так и не понял из описания,&nbsp;но думаю,&nbsp;что разберемся по ходу настройки).</p>\n<p class=\"rtejustify\">Загрузим архив с плагином в каталог <strong>/usr/local/www/roundcube/plugins</strong>, распакуем архив и удалим его,&nbsp;чтобы не засорять файловую систему:</p>\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td># <strong>cd /usr/local/www/roundcube/plugins<br />\n </strong># <strong>fetch <a href=\"http://muff.kiev.ua/files/antiBruteForce.tar\" title=\"http://muff.kiev.ua/files/antiBruteForce.tar\">http://muff.kiev.ua/files/antiBruteForce.tar</a><br />\n </strong>antiBruteForce.tar&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 100% of&nbsp;&nbsp; 18 kB&nbsp;&nbsp; 40 MBps<br />\n # <strong>tar -xzf antiBruteForce.tar</strong><br />\n # <strong>rm antiBruteForce.tar</strong></td>\n</tr>\n</tbody>\n</table>\n<p class=\"rtejustify\">Как оказалось,&nbsp;права на созданный каталог выставлены в <strong>777</strong>. Этот непорядок необходимо устранить. Выставим на каталог права <strong>755</strong>:</p>\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td># <strong>chmod -R&nbsp;755 antiBruteForce</strong></td>\n</tr>\n</tbody>\n</table>\n<p class=\"rtejustify\">Внутри каталога <strong>antiBruteForce</strong> лежит PHP-скрипт <strong>antiBruteForce.php</strong>. Советую отредактировать переменные,&nbsp;которые заданы в начале скрипта (для меня сюрпризом было то,&nbsp;что все комментарии на португальском... воспользовался переводчиком). В моем случаем переменные выставлены в такое значение:</p>\n<p class=\"rtejustify\">\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td>\n<p><strong>private $registers=&quot;<span style=\"color: #ff0000\">logs/userlogins</span>&quot;; //</strong> Куда писать логи попыток авторизации <br />\n <strong>private $attempts=<span style=\"color: #ff0000\">3</span>; //</strong> Количество попыток перед блокировкой доступа <br />\n <strong>private $registeredAttemptsInTime=<span style=\"color: #ff0000\">0</span>; //</strong> Переменная, которая хранит число попыток авторизации за <br />\n &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // определенный промежуток времени <br />\n <strong>private $time=<span style=\"color: #ff0000\">600</span>; //</strong> Время между попытками <br />\n <strong>private $blockedTime=<span style=\"color: #ff0000\">null</span>; //</strong> Хранит оставшиеся блокировки в секундах<br />\n <strong>private $message=&quot;<span style=\"color: #ff0000\">&lt;center&gt;&lt;b&gt;&lt;font color=\\&quot;red\\&quot;&gt;Access is temporally forbidden.&lt;/font&gt;&lt;/b&gt;&lt;/center&gt;&lt;br&gt; Wait: </span>&quot;;</strong><br />\n &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Сообщение&nbsp;об ошибке при блокировке</p>\n</td>\n</tr>\n</tbody>\n</table>\n</p>\n<p>Потом необходимо активировать плагин, добавив его в массив плагинов в файле конфигурации <strong>main.inc.php</strong>:</p>\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td># <strong>cat /usr/local/www/roundcube/config/main.inc.php | grep antiBruteForce<br />\n </strong>$rcmail_config[\'plugins\'] = array(\'<span style=\"color: #ff0000\">antiBruteForce</span>\');</td>\n</tr>\n</tbody>\n</table>\n<p class=\"rtejustify\">На этом настройку плагина <strong>antiBruteForce</strong> можно считать законченой. После указанного количества попыток (переменная $attempts) неверной авторизации можно будет наблюдать такое окошко:</p>\n<p class=\"rtecenter\">&nbsp;<a class=\"thickbox\" title=\"Roundcube antiBruteForce\" href=\"/files/imagepicker/1/roundcube-plugin00.png\"><img class=\"imgp_img\" alt=\"Roundcube antiBruteForce\" src=\"/files/imagepicker/1/thumbs/roundcube-plugin00.png\" /></a></p>\n<hr />\n<h4 class=\"rtecenter\">&nbsp;<span style=\"color: #0000ff\"><a class=\" FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC\" name=\"Archive\">Archive</a></span></h4>\n<p class=\"rtejustify\">Плагин <strong>Archive</strong> добавляет новую кнопку для перемещения сообщения в архивный каталог,&nbsp;который конфигурируется пользователем.</p>\n<p class=\"rtejustify\">Для активации плагина необходимо&nbsp;добавить его в список подключенных плагинов:</p>\n<p class=\"rtejustify\">\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td># <strong>cat /usr/local/www/roundcube/config/main.inc.php | grep archive<br />\n </strong>$rcmail_config[\'plugins\'] = array(\'<span style=\"color: #ff0000\">archive</span>\');</td>\n</tr>\n</tbody>\n</table>\n</p>\n<p class=\"rtejustify\">&nbsp;После активации плагина необходимо создать каталог,&nbsp;в который и будем перемещать письма для архивации:</p>\n<ol>\n<li class=\"rtejustify\">Войти в &quot;Настройки&quot;</li>\n<li class=\"rtejustify\">Выбрать закладку &quot;Папки&quot;</li>\n<li class=\"rtejustify\">Нажать на кнопку создания нового каталога</li>\n<li class=\"rtejustify\">Указать имя каталога. Например &quot;Archive&quot;</li>\n<li class=\"rtejustify\">Сохранить изменения<br />\n<p class=\"rtejustify\">&nbsp;</p>\n</li>\n</ol>\n<p class=\"rtecenter\">&nbsp;<a class=\"thickbox\" title=\"Roundcube plugin\" href=\"/files/imagepicker/1/roundcube-plugin02.png\"><img class=\"imgp_img\" alt=\"Roundcube archive\" src=\"/files/imagepicker/1/thumbs/roundcube-plugin02.png\" /></a></p>\n<p>&nbsp;Следующий шаг - указываем каталог,&nbsp;в котором письма будут архивироваться:</p>\n<ol>\n<li>Войти в &quot;Настройки&quot;</li>\n<li>Выбрать закладку &quot;Настройки&quot;</li>\n<li>Выбрать раздел &quot;Особые папки&quot;</li>\n<li>Указать, для каталога &quot;Archive&quot; тип &quot;Архив&quot;</li>\n<li>Сохранить изменения</li>\n</ol>\n<p class=\"rtecenter\"><a class=\"thickbox\" title=\"Roundcube plugin\" href=\"/files/imagepicker/1/roundcube-plugin03.png\"><img class=\"imgp_img\" alt=\"Roundcube archive\" src=\"/files/imagepicker/1/thumbs/roundcube-plugin03.png\" /></a></p>\n<p>В результате на панели инструментов <strong>Roundcube</strong> появится новая кнопка &quot;Переместить выбранное в архив&quot;.</p>\n<hr />\n<h4 class=\"rtecenter\"><span style=\"color: #0000ff\"><a class=\" FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC\" name=\"Compose_Addressbook\">Compose addressbook</a></span></h4>\n<p>Плагин <strong>Compose addressbook</strong> позволяет использовать адресную книгу во время компоновки нового письма.</p>\n<p>Скачаем архив с плагином <strong>Compose addressbook</strong> и распакуем его в каталог плагинов <strong>Roundcube</strong>. После распаковки удаляем архив,&nbsp;чтобы не засорять файловую систему.</p>\n<p><span style=\"color: #ff0000\"><strong>ВНИМАНИЕ!</strong></span> Даная версия плагина только для <strong>Roundcube 0.6</strong>&nbsp;и выше.&nbsp;</p>\n<p><table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td>\n<p># <strong>cd /usr/local/www/roundcube/plugins<br />\n </strong># <strong>fetch <a href=\"http://muff.kiev.ua/files/roundcube-compose_addressbook.tgz\" title=\"http://muff.kiev.ua/files/roundcube-compose_addressbook.tgz\">http://muff.kiev.ua/files/roundcube-compose_addressbook.tgz</a><br />\n </strong>roundcube-compose_addressbook.tgz&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 100% of&nbsp;&nbsp; 30 kB&nbsp;&nbsp; 17 MBps<br />\n # <strong>tar -xzf roundcube-compose_addressbook.tgz<br />\n </strong># <strong>rm roundcube-compose_addressbook.tgz</strong></p>\n</td>\n</tr>\n</tbody>\n</table>\n</p>\n<p class=\"rtejustify\">Создадим файл конфигурации плагина, копированием из предложенного примера:</p>\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td># <strong>cp compose_addressbook/config.inc.php.dist compose_addressbook/config.inc.php</strong></td>\n</tr>\n</tbody>\n</table>\n<p class=\"rtejustify\">Даный плагин зависит от плагина <strong>jqueryui</strong>, поэтому в <strong>main.inc.php</strong> активируем оба:</p>\n<p class=\"rtejustify\">\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td># <strong>cat /usr/local/www/roundcube/config/main.inc.php | grep compose_addressbook<br />\n </strong>$rcmail_config[\'plugins\'] = array(\'<span style=\"color: #ff0000\">compose_addressbook</span>\', \'<span style=\"color: #ff0000\">jqueryui</span>\');</td>\n</tr>\n</tbody>\n</table>\n</p>\n<p class=\"rtejustify\">На этом настройку плагина можно считать оконченной. При составлении нового письма на панели инструментов&nbsp;появится кнопка &quot;Show Address Book&quot;&nbsp;и,&nbsp;соответственно,&nbsp;можно будет сразу выбрать получателей из адресной книги прямо во время компоновки письма.</p>\n<hr />\n<h4 class=\"rtecenter\"><span style=\"color: #0000ff\"><a class=\" FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC\" name=\"Custom_From\">Custom From</a></span></h4>\n<p class=\"rtejustify\">Плагин <strong>Custom From</strong> добавляет в режиме создания письма кнопку, нажав на которую,&nbsp;выпадающий список &quot;От кого:&quot; заменяется полем ввода даных.</p>\n<p>Скачаем архив с плагином <strong>Custom&nbsp;from</strong> и распакуем его в каталог плагинов <strong>Roundcube</strong>. После распаковки удаляем архив,&nbsp;чтобы не засорять файловую систему.</p>\n<p><table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td>\n<p># <strong>cd /usr/local/www/roundcube/plugins<br />\n </strong># <strong>fetch <a href=\"http://muff.kiev.ua/files/roundcube-custom_from.tgz\" title=\"http://muff.kiev.ua/files/roundcube-custom_from.tgz\">http://muff.kiev.ua/files/roundcube-custom_from.tgz</a><br />\n </strong>roundcube-custom_from.tgz&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 100% of 2005&nbsp; B&nbsp;&nbsp; 10 MBps<br />\n # <strong>tar -xzf roundcube-custom_from.tgz<br />\n </strong># <strong>rm roundcube-custom_from.tgz</strong></p>\n</td>\n</tr>\n</tbody>\n</table>\n</p>\n<p class=\"rtejustify\">Активируем плагин,&nbsp;добавив его в массив подключенных плагинов:</p>\n<p class=\"rtejustify\">\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td># <strong>cat /usr/local/www/roundcube/config/main.inc.php | grep custom_from<br />\n </strong>$rcmail_config[\'plugins\'] = array(\'<span style=\"color: #ff0000\">custom_from</span>\');</td>\n</tr>\n</tbody>\n</table>\n</p>\n<p>Вот и все... Настройка плагина завершена.</p>\n<p>&nbsp;</p>\n<hr />\n<p>&nbsp;</p>\n<h4 class=\"rtecenter\"><span style=\"color: #0000ff\"><a class=\" FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC\" name=\"Custom_logo\">Custom logo</a></span></h4>\n<p class=\"rtejustify\">Плагин <strong>Custom logo</strong> пригодится,&nbsp;когда почтовый&nbsp;сервер мультидоменный. Принцип его работы заключается в отображении разных логотипов, в зависимости от того,&nbsp;какое доменное имя содержится в почтовом адресе пользователя.</p>\n<p>Скачаем архив с плагином <strong>Custom logo</strong> и распакуем его в каталог плагинов <strong>Roundcube</strong>. После распаковки удаляем архив,&nbsp;чтобы не засорять файловую систему.</p>\n<p><table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td>\n<p># <strong>cd /usr/local/www/roundcube/plugins<br />\n </strong># <strong>fetch </strong><strong>http://muff.kiev.ua/files/roundcube-custom_logo.tar.gz</strong><strong><br />\n </strong>roundcube-custom_logo.tar.gz&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 100% of 7352&nbsp; B&nbsp;&nbsp; 30 MBps<br />\n # <strong>tar -xzf roundcube-custom_logo.tar.gz<br />\n </strong># <strong>rm roundcube-custom_logo.tar.gz</strong></p>\n</td>\n</tr>\n</tbody>\n</table>\n</p>\n<p class=\"rtejustify\">Создадим файл конфигурации,&nbsp;копированием из предложеного примера:</p>\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td># <strong>cp custom_logo/config.inc.php.dist custom_logo/config.inc.php</strong></td>\n</tr>\n</tbody>\n</table>\n<p class=\"rtejustify\">Если просмотреть файл конфигурации,&nbsp;то становится понятно, что логотипы необходимо хранить в каталоге <strong>/usr/local/www/roundcube/plugins/custom_logo/images</strong> с форматом имени файла <strong>%d_logo.png</strong> где <strong>%d</strong> - доменная часть e-mail пользователя.</p>\n<p class=\"rtejustify\">Активируем плагин,&nbsp;добавив его в массив подключенных плагинов:</p>\n<p class=\"rtejustify\">\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td># <strong>cat /usr/local/www/roundcube/config/main.inc.php | grep custom_logo<br />\n </strong>$rcmail_config[\'plugins\'] = array(\'<span style=\"color: #ff0000\">custom_logo</span>\');</td>\n</tr>\n</tbody>\n</table>\n</p>\n<p>В случае,&nbsp;если логотип для определенного домена не подгружен,&nbsp;отображается стандартный логотип <strong>Roundcube</strong>.</p>\n<hr />\n<h4 class=\"rtecenter\"><span style=\"color: #0000ff\"><a class=\" FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC\" name=\"Custom_title\">Custom title</a></span></h4>\n<p class=\"rtejustify\">Плагин <strong>сustom title</strong> позволяет изменять заголовок страницы, добавляя,&nbsp;например,&nbsp;имя текущего пользователя. Скачаем архив с плагином в каталог плагинов <strong>Roundcube</strong> и распакуем его. Также удалим архив,&nbsp;чтобы не засорять файловую систему:</p>\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td>\n<p># <strong>cd /usr/local/www/roundcube/plugins<br />\n </strong># <strong>fetch <a href=\"http://muff.kiev.ua/files/roundcube-custom_title.tar.gz\" title=\"http://muff.kiev.ua/files/roundcube-custom_title.tar.gz\">http://muff.kiev.ua/files/roundcube-custom_title.tar.gz</a><br />\n </strong>roundcube-custom_title.tar.gz&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 100% of 1140&nbsp; B 8308 kBps<br />\n # <strong>tar -xzf roundcube-custom_title.tar.gz</strong><br />\n # <strong>rm roundcube-custom_title.tar.gz</strong></p>\n</td>\n</tr>\n</tbody>\n</table>\n<p class=\"rtejustify\">Активируем плагин,&nbsp;добавив его в список подключенных плагинов:</p>\n<p class=\"rtejustify\">\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td># <strong>cat /usr/local/www/roundcube/config/main.inc.php | grep custom_title<br />\n </strong>$rcmail_config[\'plugins\'] = array(\'<span style=\"color: #ff0000\">custom_title</span>\');</td>\n</tr>\n</tbody>\n</table>\n</p>\n<p>На этом базовая настройка модуля завершена.</p>\n<hr />\n<h4 class=\"rtecenter\"><span style=\"color: #0000ff\"><a class=\" FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC\" name=\"Drag_upload\">Drag upload</a></span></h4>\n<p>Плагин <strong>drag upload</strong> реализовывает&nbsp;возможность&nbsp;прикреплять файлы к письму простым перетаскиванием.&nbsp;&nbsp;Скачаем архив с плагином в каталог плагинов <strong>Roundcube</strong> и распакуем его. После этого удалим архив,&nbsp;чтобы не засорять файловую систему:</p>\n<p><table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td>\n<p># <strong>cd /usr/local/www/roundcube/plugins<br />\n </strong># <strong>fetch http://muff.kiev.ua/files/roundcube-drag_upload.tar.gz</strong><br />\n roundcube-drag_upload.tar.gz&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 100% of 3071&nbsp; B&nbsp;&nbsp; 15 MBps<br />\n # <strong>tar -xzf roundcube-drag_upload.tar.gz<br />\n </strong># <strong>rm roundcube-drag_upload.tar.gz</strong></p>\n</td>\n</tr>\n</tbody>\n</table>\n</p>\n<p class=\"rtejustify\">Активируем плагин,&nbsp;добавив его в список подключенных плагинов:</p>\n<p class=\"rtejustify\">\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td># <strong>cat /usr/local/www/roundcube/config/main.inc.php | grep drag_upload<br />\n </strong>$rcmail_config[\'plugins\'] = array(\'<span style=\"color: #ff0000\">drag_upload</span>\');</td>\n</tr>\n</tbody>\n</table>\n</p>\n<p>На этом базовая настройка модуля завершена.</p>\n<hr />\n<h4 class=\"rtecenter\"><a class=\" FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC\" name=\"Emoticons\"><span style=\"color: #0000ff\"><strong>Emoticons</strong></span></a></h4>\n<p class=\"rtejustify\">Плагин <strong>emoticons</strong> выполняет автоматическую замену смайликов в текстовом виде на графические иконки.&nbsp; Плагин есть в стандартной инсталяции <strong>Roundcube</strong>. Для активации плагина необходимо всего лишь добавить его в список подключенных плагинов:</p>\n<p class=\"rtejustify\">\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td># <strong>cat /usr/local/www/roundcube/config/main.inc.php | grep emoticons<br />\n </strong>$rcmail_config[\'plugins\'] = array(\'<span style=\"color: #ff0000\">emoticons</span>\');</td>\n</tr>\n</tbody>\n</table>\n</p>\n<p>&nbsp;После подключение плагина имеем такую таблицу преобразований:</p>\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"75%\" align=\"center\">\n<tbody>\n<tr>\n<td class=\"rtecenter\"><strong>Текстовое отображение</strong></td>\n<td class=\"rtecenter\"><strong>Графическое отображение</strong></td>\n</tr>\n<tr>\n<td class=\"rtecenter\">:)</td>\n<td class=\"rtecenter\"><img alt=\"Smile\" width=\"18\" height=\"18\" src=\"http://muff.kiev.ua/files/smiley-smile.gif\" /></td>\n</tr>\n<tr>\n<td class=\"rtecenter\">:-)</td>\n<td class=\"rtecenter\"><img alt=\"Smile\" width=\"18\" height=\"18\" src=\"http://muff.kiev.ua/files/smiley-smile.gif\" /></td>\n</tr>\n<tr>\n<td class=\"rtecenter\">:D</td>\n<td class=\"rtecenter\"><img alt=\"laughing\" width=\"18\" height=\"18\" src=\"http://muff.kiev.ua/files/smiley-laughing.gif\" /></td>\n</tr>\n<tr>\n<td class=\"rtecenter\">:-D</td>\n<td class=\"rtecenter\"><img alt=\"laughing\" width=\"18\" height=\"18\" src=\"http://muff.kiev.ua/files/smiley-laughing.gif\" /></td>\n</tr>\n<tr>\n<td class=\"rtecenter\">:(</td>\n<td class=\"rtecenter\"><img alt=\"frown\" width=\"18\" height=\"18\" src=\"http://muff.kiev.ua/files/smiley-frown.gif\" /></td>\n</tr>\n<tr>\n<td class=\"rtecenter\">:-(</td>\n<td class=\"rtecenter\"><img alt=\"frown\" width=\"18\" height=\"18\" src=\"http://muff.kiev.ua/files/smiley-frown.gif\" /></td>\n</tr>\n<tr>\n<td class=\"rtecenter\">;)</td>\n<td class=\"rtecenter\"><img alt=\"wink\" width=\"18\" height=\"18\" src=\"http://muff.kiev.ua/files/smiley-wink.gif\" /></td>\n</tr>\n<tr>\n<td class=\"rtecenter\">;-)</td>\n<td class=\"rtecenter\"><img alt=\"wink\" width=\"18\" height=\"18\" src=\"http://muff.kiev.ua/files/smiley-wink.gif\" /></td>\n</tr>\n<tr>\n<td class=\"rtecenter\">8)</td>\n<td class=\"rtecenter\"><img alt=\"cool\" width=\"18\" height=\"18\" src=\"http://muff.kiev.ua/files/smiley-cool.gif\" /></td>\n</tr>\n<tr>\n<td class=\"rtecenter\">8-)</td>\n<td class=\"rtecenter\"><img alt=\"cool\" width=\"18\" height=\"18\" src=\"http://muff.kiev.ua/files/smiley-cool.gif\" /></td>\n</tr>\n<tr>\n<td class=\"rtecenter\">:O</td>\n<td class=\"rtecenter\"><img alt=\"cool\" width=\"18\" height=\"18\" src=\"http://muff.kiev.ua/files/smiley-surprised.gif\" /></td>\n</tr>\n<tr>\n<td class=\"rtecenter\">:-O</td>\n<td class=\"rtecenter\"><img alt=\"cool\" width=\"18\" height=\"18\" src=\"http://muff.kiev.ua/files/smiley-surprised.gif\" /></td>\n</tr>\n<tr>\n<td class=\"rtecenter\">:P</td>\n<td class=\"rtecenter\"><img alt=\"cool\" width=\"18\" height=\"18\" src=\"http://muff.kiev.ua/files/smiley-tongue-out.gif\" /></td>\n</tr>\n<tr>\n<td class=\"rtecenter\">:-P</td>\n<td class=\"rtecenter\"><img alt=\"cool\" width=\"18\" height=\"18\" src=\"http://muff.kiev.ua/files/smiley-tongue-out.gif\" /></td>\n</tr>\n<tr>\n<td class=\"rtecenter\">:@</td>\n<td class=\"rtecenter\"><img alt=\"cool\" width=\"18\" height=\"18\" src=\"http://muff.kiev.ua/files/smiley-yell.gif\" /></td>\n</tr>\n<tr>\n<td class=\"rtecenter\">:-@</td>\n<td class=\"rtecenter\"><img alt=\"cool\" width=\"18\" height=\"18\" src=\"http://muff.kiev.ua/files/smiley-yell.gif\" /></td>\n</tr>\n<tr>\n<td class=\"rtecenter\">O:)</td>\n<td class=\"rtecenter\"><img alt=\"cool\" width=\"18\" height=\"18\" src=\"http://muff.kiev.ua/files/smiley-innocent.gif\" /></td>\n</tr>\n<tr>\n<td class=\"rtecenter\">O:-)</td>\n<td class=\"rtecenter\"><img alt=\"cool\" width=\"18\" height=\"18\" src=\"http://muff.kiev.ua/files/smiley-innocent.gif\" /></td>\n</tr>\n<tr>\n<td class=\"rtecenter\">:$</td>\n<td class=\"rtecenter\"><img alt=\"cool\" width=\"18\" height=\"18\" src=\"http://muff.kiev.ua/files/smiley-embarassed.gif\" /></td>\n</tr>\n<tr>\n<td class=\"rtecenter\">:-$</td>\n<td class=\"rtecenter\"><img alt=\"cool\" width=\"18\" height=\"18\" src=\"http://muff.kiev.ua/files/smiley-embarassed.gif\" /></td>\n</tr>\n<tr>\n<td class=\"rtecenter\">:*</td>\n<td class=\"rtecenter\"><img alt=\"cool\" width=\"18\" height=\"18\" src=\"http://muff.kiev.ua/files/smiley-kiss.gif\" /></td>\n</tr>\n<tr>\n<td class=\"rtecenter\">:-*</td>\n<td class=\"rtecenter\"><img alt=\"cool\" width=\"18\" height=\"18\" src=\"http://muff.kiev.ua/files/smiley-kiss.gif\" /></td>\n</tr>\n<tr>\n<td class=\"rtecenter\">:S</td>\n<td class=\"rtecenter\"><img alt=\"cool\" width=\"18\" height=\"18\" src=\"http://muff.kiev.ua/files/smiley-undecided.gif\" /></td>\n</tr>\n<tr>\n<td class=\"rtecenter\">:-S</td>\n<td class=\"rtecenter\"><img alt=\"cool\" width=\"18\" height=\"18\" src=\"http://muff.kiev.ua/files/smiley-undecided.gif\" /></td>\n</tr>\n</tbody>\n</table>\n<p class=\"rtejustify\">Вот так-то... Однако,&nbsp;данный плагин имеет недостаток (особенно актуально для програмеров и системных администраторов). Если отправлять,&nbsp;например,&nbsp;какой-то кусок кода скрипта в письме,&nbsp;а не вложением - будет выполнена замена по всему скрипту,&nbsp;что не очень удобно.</p>\n<hr />\n<h4 class=\"rtecenter\"><span style=\"color: #0000ff\"><a class=\" FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC\" name=\"Language_Selector\">Language Selector</a></span></h4>\n<p class=\"rtejustify\">Даний плагин добавляет возможность переключатель языка на странице авторизации.</p>\n<p class=\"rtejustify\">Скачаем архив с плагином <strong>Language Selector&nbsp;</strong>и распакуем его в каталог плагинов <strong>Roundcube</strong>. После распаковки удалим архив,&nbsp;чтобы не засорять файловую систему.</p>\n<p><table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td>\n<p># <strong>cd /usr/local/www/roundcube/plugins<br />\n </strong># <strong>fetch http://muff.kiev.ua/files/roundcube-language_selector.tar.gz</strong><br />\n roundcube-language_selector.tar.gz&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 100% of 2155&nbsp; B&nbsp;&nbsp; 11 MBps<br />\n # <strong>tar -xzf roundcube-language_selector.tar.gz<br />\n </strong># <strong>rm roundcube-language_selector.tar.gz</strong></p>\n</td>\n</tr>\n</tbody>\n</table>\n</p>\n<p class=\"rtejustify\">Создадим конфигурационный файл <strong>config.inc.php</strong> копированием из предложенного примера:</p>\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td># <strong>cp lang_sel/config.inc.php.dist lang_sel/config.inc.php</strong></td>\n</tr>\n</tbody>\n</table>\n<p>Активируем плагин,&nbsp;добавив запись в конфигурационный файл <strong>main.inc.php</strong>:</p>\n<p class=\"rtejustify\">\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td># <strong>cat /usr/local/www/roundcube/config/main.inc.php | grep lang_sel<br />\n </strong>$rcmail_config[\'plugins\'] = array(\'<font color=\"#ff0000\">lang_sel</font>\');</td>\n</tr>\n</tbody>\n</table>\n</p>\n<p class=\"rtejustify\">Результат работы модуля:</p>\n<p class=\"rtecenter\"><a class=\"thickbox\" title=\"Roundcube language selector\" href=\"/files/imagepicker/1/roundcube-plugin07.png\"><img class=\"imgp_img\" alt=\"Roundcube language selector\" src=\"/files/imagepicker/1/thumbs/roundcube-plugin07.png\" /></a></p>\n<hr />\n<h4 class=\"rtecenter\">&nbsp;<span style=\"color: #0000ff\"><a class=\" FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC\" name=\"Login_info\">Login info</a></span></h4>\n<p class=\"rtejustify\">Действие плагина <strong>Login info</strong> довольно простое - отображение дополнительной информации на странице авторизации.&nbsp;В ряде случаев эта возможность может оказаться довольно даже полезной.</p>\n<p>Скачаем архив с плагином <strong>Login info</strong> и распакуем его в каталог плагинов <strong>Roundcube</strong>. После распаковки удаляем архив,&nbsp;чтобы не засорять файловую систему.</p>\n<p><table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td>\n<p># <strong>cd /usr/local/www/roundcube/plugins<br />\n </strong># <strong>fetch </strong><strong>http://muff.kiev.ua/files/roundcube-login_info.tar.gz</strong><strong><br />\n </strong>roundcube-login_info.tar.gz&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 100% of 2534&nbsp; B&nbsp;&nbsp; 13 MBps<br />\n # <strong>tar -xzf roundcube-login_info.tar.gz<br />\n </strong># <strong>rm roundcube-login_info.tar.gz</strong></p>\n</td>\n</tr>\n</tbody>\n</table>\n</p>\n<p class=\"rtejustify\">Создадим конфигурационный файл <strong>config.inc.php</strong> примерно следующего содержания (не забываем о кодировке файла - по умолчанию <strong>Roundcube</strong> отображает страницы в <strong>UTF-8</strong>):</p>\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td bgcolor=\"#333333\">\n<div><span style=\"color: #3366ff\">&lt;?php</span></div>\n<div>&nbsp;</div>\n<div><span style=\"color: #3366ff\">/</span><span style=\"color: #00ff00\">* Login_info plugin */</span></div>\n<div>&nbsp;</div>\n<div><span style=\"color: #00ff00\">/* Необходимо вставить сообщение между двумя EOT TAGS:<br />\n $rcmail_config[\'login_info\'] = &lt;&lt;&lt;EOT<br />\n ТЕКСТ СООБЩЕНИЯ ЗДЕСЬ<br />\n EOT;<br />\n */<br />\n </span><span style=\"color: #3366ff\">$rcmail_config[\'login_info\'] = &lt;&lt;&lt;EOT<br />\n &lt;br&gt;<br />\n &lt;center&gt;&lt;b&gt;Пользовательское соглашение&lt;/b&gt;&lt;/center&gt;<br />\n &lt;br&gt;<br />\n &lt;table border=&quot;0&quot; cellspacing=&quot;1&quot; cellpadding=&quot;1&quot; align=&quot;center&quot; width=&quot;90%&quot;&gt;<br />\n &nbsp;&nbsp;&nbsp; &lt;tbody&gt;<br />\n &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;tr&gt;<br />\n &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td&gt;<br />\n &lt;p&gt;1. Пользуясь возможностями почтового сервера <span style=\"color: #ff0000\">Server_Hostname_Here</span> пользователь автоматически принимает условия даного Пользовательского соглашения.&lt;/p&gt;<br />\n &lt;p&gt;2. Даный почтовый сервер <span style=\"color: #ff0000\">Server_Hostname_Here</span> развернут для предоставления услуг электронной почты исключительно сотрудникам <span style=\"color: #ff0000\">Company_Name_Here</span>.&lt;/p&gt;<br />\n &lt;p&gt;3. Использование сервера <span style=\"color: #ff0000\">Server_Hostname_Here</span> способом, не имеющим&nbsp;отношения к трудовому процессу, является нарушением правил использования сети <span style=\"color: #ff0000\">Company_Name_Here</span> и приравнивается к нарушению правил трудовой дисциплины. К нарушениям правил использования сервера <span style=\"color: #ff0000\">Server_Hostname_Here</span> в частности относятся отправка или получение информации следующего содержания:&lt;/p&gt;<br />\n &lt;ul&gt;<br />\n &nbsp;&nbsp;&nbsp; &lt;li&gt;программное обеспечение, нарушающее авторские права или лицензионные соглашения субъектов или физических лиц;&lt;/li&gt;<br />\n &nbsp;&nbsp;&nbsp; &lt;li&gt;музыкальные или видеоматериалы, нарушающие авторские права исполнителей;&lt;/li&gt;<br />\n &nbsp;&nbsp;&nbsp; &lt;li&gt;материалы порнографического содержания;&lt;/li&gt;<br />\n &nbsp;&nbsp;&nbsp; &lt;li&gt;научные работы, статьи или другую информацию, которая может представлять коммерческую тайну, без предварительного согласования с руководством;&lt;/li&gt;<br />\n &nbsp;&nbsp;&nbsp; &lt;li&gt;сообщения, оскорбляющие других людей, их национальные или религиозные чувства;&lt;/li&gt;<br />\n &nbsp;&nbsp;&nbsp; &lt;li&gt;сообщения политического характера;&lt;/li&gt;<br />\n &nbsp;&nbsp;&nbsp; &lt;li&gt;сообщения с угрозами или элементами шантажа;&lt;/li&gt;<br />\n &nbsp;&nbsp;&nbsp; &lt;li&gt;информация, связанная с деятельностью террористических либо экстремистских группировок или лиц;&lt;/li&gt;<br />\n &nbsp;&nbsp;&nbsp; &lt;li&gt;любая информация, каким-либо образом нарушающая действующее законодательство Украины&lt;/li&gt;<br />\n &lt;/ul&gt;<br />\n &lt;p&gt;4. Категорически запрещается массовая рассылка нежелательных сообщений рекламного или непристойного содержания (спам).&lt;/p&gt;<br />\n &lt;p&gt;5. В случае нарушения правил пользования почтовым сервером <span style=\"color: #ff0000\">Server_Hostname_Here</span> пользователь может быть отключен от данного сервера.&lt;/p&gt;<br />\n &lt;p&gt;6. Запрещается использование сервера <span style=\"color: #ff0000\">Server_Hostname_Here</span> каким-либо способом, приводящим к технической неисправности или причинению вреда данному серверу, другим сетевым ресурсам сети <span style=\"color: #ff0000\">Company_Name_Here </span>или ресурсам сети Интернет. В случае нанесения пользователем сервера <span style=\"color: #ff0000\">Server_Hostname_Here</span> какого-либо ущерба <span style=\"color: #ff0000\">Company_Name_Here</span>, другим организациям или физическим лицам, пользователь несет персональную административную или уголовную ответственность согласно действующего законодавства. Администрация почтового сервера <span style=\"color: #ff0000\">Server_Hostname_Here</span> не несет ответственности за действия пользователя.&lt;/p&gt;<br />\n &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/td&gt;<br />\n &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/tr&gt;<br />\n &nbsp;&nbsp;&nbsp; &lt;/tbody&gt;<br />\n &lt;/table&gt;<br />\n &lt;br&gt;<br />\n EOT;</span></div>\n<div>&nbsp;</div>\n<div><span style=\"color: #3366ff\">?&gt;</span></div>\n</td>\n</tr>\n</tbody>\n</table>\n<p>Что называется, &quot;Остапа понесло...&quot; - наваял &quot;Правила пользования корпоративным почтовым сервером&quot;. Это так - основы,&nbsp;но возможно будет для кого-то базовыми правилами.</p>\n<p>Активируем плагин,&nbsp;добавив запись в конфигурационный файл <strong>main.inc.php</strong>:</p>\n<p class=\"rtejustify\">\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td># <strong>cat /usr/local/www/roundcube/config/main.inc.php | grep login_info<br />\n </strong>$rcmail_config[\'plugins\'] = array(\'<font color=\"#ff0000\">login_info</font>\');</td>\n</tr>\n</tbody>\n</table>\n</p>\n<p class=\"rtejustify\">Пример работы модуля:</p>\n<p class=\"rtecenter\"><a class=\"thickbox\" title=\"Roundcube login_info\" href=\"/files/imagepicker/1/roundcube-plugin06.png\"><img class=\"imgp_img\" alt=\"Roundcube login_info\" src=\"/files/imagepicker/1/thumbs/roundcube-plugin06.png\" /></a></p>\n<h4 class=\"rtecenter\"><span style=\"color: #3366ff\"><br />\n<hr />\n<font color=\"#000000\">&nbsp;</font><a class=\" FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC\" name=\"Newmail_notifier\">Newmail notifier</a></span></h4>\n<p class=\"rtejustify\">Плагин <strong>newmail_notifier </strong>служит для уведомления пользователя о новом письме,&nbsp;фокусировкой либо же звуком. Для активации модуля необходимо добавить его&nbsp;поддержку в конфигурационный файл <strong>main.inc.php</strong>:</p>\n<p class=\"rtejustify\">\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td># <strong>cat /usr/local/www/roundcube/config/main.inc.php | grep antiBruteForce<br />\n </strong>$rcmail_config[\'plugins\'] = array(\'<font color=\"#ff0000\">newmail_notifier</font>\');</td>\n</tr>\n</tbody>\n</table>\n</p>\n<p class=\"rtejustify\">Также необходимо создать конфигурационный файл плагина - <strong>config.inc.php</strong> в каталоге модуля. Содержание <strong>config.inc.php</strong> такое:</p>\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td bgcolor=\"#333333\">\n<div><span style=\"color: #3366ff\">&lt;?php</span></div>\n<div>&nbsp;</div>\n<div><span style=\"color: #00ff00\">// Enables basic notification<br />\n </span><span style=\"color: #3366ff\">$rcmail_config[\'newmail_notifier_basic\'] = <span style=\"color: #ff0000\">true</span>;</span></div>\n<div>&nbsp;</div>\n<div><span style=\"color: #00ff00\">// Enables sound notification</span><span style=\"color: #3366ff\"><br />\n $rcmail_config[\'newmail_notifier_sound\'] = <span style=\"color: #ff0000\">true</span>;</span></div>\n<div>&nbsp;</div>\n<div><span style=\"color: #3366ff\">?&gt;</span></div>\n</td>\n</tr>\n</tbody>\n</table>\n<p class=\"rtejustify\">Теперь при поступлении нового письма, если окно&nbsp;<strong>Roundcube</strong> не активно,&nbsp;будет слышно звуковое уведомление.</p>\n<hr />\n<h4 class=\"rtecenter\"><span style=\"color: #0000ff\"><a class=\" FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC\" name=\"Persistent_login\">Persistent login</a></span></h4>\n<p class=\"rtejustify\">Плагин <strong>Persistent login</strong> будет полезным для пользователей,&nbsp;которые не любят авторизовываться каждый раз при заходе в свой почтовый аккаунт. Плагин сохраняет cookie пользователя и автоматически выполняет вход в почтовый аккаунт при следующем посещении пользователем.</p>\n<p class=\"rtejustify\">Загрузим плагин и&nbsp;поместим его в каталог <strong>/usr/local/www/roundcube/plugins</strong>:</p>\n<p class=\"rtejustify\">\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td>\n<p># <strong>cd /usr/local/www/roundcube/plugins<br />\n </strong># <strong>fetch <a href=\"http://muff.kiev.ua/files/roundcube-persistent_login.tar.gz\" title=\"http://muff.kiev.ua/files/roundcube-persistent_login.tar.gz\">http://muff.kiev.ua/files/roundcube-persistent_login.tar.gz</a><br />\n </strong>roundcube-persistent_login.tar.gz&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 100% of 5337&nbsp; B&nbsp;&nbsp; 27 MBps<br />\n # <strong>tar -xzf roundcube-persistent_login.tar.gz<br />\n </strong># <strong>rm roundcube-persistent_login.tar.gz</strong></p>\n</td>\n</tr>\n</tbody>\n</table>\n</p>\n<p class=\"rtejustify\">Активируем плагин,&nbsp;добавив его в массив подключенных плагинов Roundcube:</p>\n<p class=\"rtejustify\">\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td># <strong>cat /usr/local/www/roundcube/config/main.inc.php | grep persistent_login<br />\n </strong>$rcmail_config[\'plugins\'] = array(\'<span style=\"color: #ff0000\">persistent_login</span>\');</td>\n</tr>\n</tbody>\n</table>\n</p>\n<p class=\"rtejustify\">В базовой поставке плагин готов к работе. Однако,&nbsp;плагин имеет возможность использовать два различных способа работы. Первый - это использование пользовательских cookies (UserData cookie). Второй способ более безопасен - AuthToken cookie.</p>\n<p class=\"rtejustify\"><em><strong>UserData cookie</strong></em></p>\n<p class=\"rtejustify\">Способ не требует никакой дополнительной конфигурации и работает по умолчанию. Информация авторизации пользователя&nbsp;шифруется в&nbsp;cookie.&nbsp;</p>\n<p class=\"rtejustify\"><em><strong>AuthToken cookie</strong></em></p>\n<p class=\"rtejustify\">Этот способ нуждается в активации в файле конфигурации.&nbsp;Активируем даный способ работы:</p>\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td># <strong>cp persistent_login/config.inc.php.dist persistent_login/config.inc.php</strong></td>\n</tr>\n</tbody>\n</table>\n<p class=\"rtejustify\">Обращаю внимание на то,&nbsp;что параметр <strong>ifpl_use_auth_tokens</strong> установлен в значение <strong>true</strong>. Также стоит обратить внимание на параметр <strong>ifpl_login_expire</strong>, который задает &quot;время жизни&quot; cookie.</p>\n<p class=\"rtejustify\">Есть необходимость в создании таблицы в базе данных.&nbsp;Дамп таблицы идет в поставке. Просто &quot;зальем&quot; его в БД Roundcube:</p>\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td># <strong>mysql -u <span style=\"color: #ff0000\">root</span> -p roundcube &lt; persistent_login/sql/mysql.sql</strong></td>\n</tr>\n</tbody>\n</table>\n<p class=\"rtejustify\">В результате на странице авторизации можно установить чекбокс &quot;<strong>Запомнить меня</strong>&quot;.</p>\n<hr />\n<h4 class=\"rtecenter\"><a class=\" FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC\" name=\"Rcguard\"><span style=\"color: #0000ff\">Rcguard</span></a></h4>\n<p class=\"rtejustify\">Плагин <strong>Rcguard</strong> реализовывает вызов <strong>reCAPTCHA</strong> после определенного количества неудачных попыток авторизации. В идеале плагин <strong>Rcguard</strong> можно настроить на совмесную работу с <strong>antiBruteForce</strong>. После 3 неудачных попыток авторизации появляется <strong>reCAPTCHA</strong>,&nbsp;а после еще 3 неудачных попыток доступ блокируется на определенное время.</p>\n<p class=\"rtejustify\">Итак, загрузим плагин и&nbsp;поместим его в каталог <strong>/usr/local/www/roundcube/plugins</strong>:</p>\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td>\n<p># <strong>cd /usr/local/www/roundcube/plugins<br />\n </strong># <strong>fetch http://muff.kiev.ua/files/roundcube-rcguard.tar.gz</strong><br />\n roundcube-rcguard.tar.gz&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 100% of 8709 B 34 MBps<br />\n # <strong>tar -xzf roundcube-rcguard.tar.gz<br />\n </strong># <strong>rm roundcube-rcguard.tar.gz</strong></p>\n</td>\n</tr>\n</tbody>\n</table>\n<p class=\"rtejustify\">Ознакамливаемся с README и создаем файл конфигурации,&nbsp;копированием из примера:</p>\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td># <strong>cd rcguard &amp;&amp; cp config.inc.php.dist config.inc.php</strong></td>\n</tr>\n</tbody>\n</table>\n<p class=\"rtejustify\">Теперь пора разобраться с переменными,&nbsp;которые задаются в <strong>config.inc.php</strong>. После перевода комментариев имеем следующий результат (свои комменты добавлял):</p>\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td bgcolor=\"#333333\">\n<div><span style=\"color: #3366ff\">&lt;?php</span></div>\n<div>&nbsp;</div>\n<div><span style=\"color: #00ff00\">/*<br />\n &nbsp;* rcguard configuration file<br />\n &nbsp;*/</span></div>\n<div>&nbsp;</div>\n<div><span style=\"color: #00ff00\">// Количество&nbsp;ошибочных попыток авторизации перед тем,&nbsp;как будет отображена reCAPTCHA</span></div>\n<div><span style=\"color: #3366ff\">$rcmail_config[\'failed_attempts\'] = <span style=\"color: #ff0000\">3</span>;</span></div>\n<div>&nbsp;</div>\n<div><span style=\"color: #00ff00\">//&nbsp;Через сколько минут освободить&nbsp;IP&nbsp;(после последней неудачной попытки)&nbsp;</span></div>\n<div><span style=\"color: #3366ff\">$rcmail_config[\'expire_time\'] = <span style=\"color: #ff0000\">10</span>;</span></div>\n<div>&nbsp;<span style=\"color: #00ff00\"><br />\n </span></div>\n<div><span style=\"color: #00ff00\">// Задействовать HTTPS для reCAPTCHA</span></div>\n<div><span style=\"color: #3366ff\">$rcmail_config[\'recaptcha_https\'] = false;</span></div>\n<div>&nbsp;</div>\n<div><span style=\"color: #00ff00\">// Ключи можно получить по адресу <span style=\"color: #00ff00\">http://recaptcha.net/whyrecaptcha.html</span></span></div>\n<div>&nbsp;</div>\n<div><span style=\"color: #00ff00\">// Публиный ключ&nbsp;для reCAPTCHA<br />\n </span><span style=\"color: #3366ff\">$rcmail_config[\'recaptcha_publickey\'] = \'<span style=\"color: #ff0000\">6LdtLMoS222222PzwVOwo646bD06ThbACLZI7SIGT</span>\';</span></div>\n<div>&nbsp;</div>\n<div><span style=\"color: #00ff00\">// Приватный&nbsp;ключ для&nbsp;reCAPTCHA<br />\n </span><span style=\"color: #3366ff\">$rcmail_config[\'recaptcha_privatekey\'] = \'<span style=\"color: #ff0000\">6LdtLMoSAAAAAC2ABcoifRtILGnR_d-kTvMdbZdZ</span>\';</span></div>\n<div>&nbsp;</div>\n<div><span style=\"color: #00ff00\">// Логирование<br />\n </span><span style=\"color: #3366ff\">$rcmail_config[\'recaptcha_log\'] = false;</span></div>\n<div>&nbsp;</div>\n<div><span style=\"color: #00ff00\">//&nbsp;События не будут логироваться,&nbsp;если задать&nbsp;NULL<br />\n // %r - Remote IP<br />\n // %u - Username<br />\n <span style=\"color: #3366ff\">$rcmail_config[\'recaptcha_log_success\'] = \'Verification succeeded for %u. [%r]\';<br />\n </span><span style=\"color: #3366ff\">$rcmail_config[\'recaptcha_log_failure\'] = \'Error: Verification failed for %u. [%r]\';</span><br />\n </span><span style=\"color: #3366ff\">$rcmail_config[\'recaptcha_log_unknown\'] = \'Error: Unknown log type.\';</span></div>\n<div>&nbsp;</div>\n<div><span style=\"color: #00ff00\"><br />\n </span><span style=\"color: #00ff00\">// Установить true, если используется плагин remember_me</span></div>\n<div><span style=\"color: #3366ff\">$rcmail_config[\'remember_me\'] = false;</span></div>\n<div>&nbsp;</div>\n<div><span style=\"color: #00ff00\">// Имя&nbsp;пользовательских cookie&nbsp;для remember_me<br />\n </span><span style=\"color: #3366ff\">$rcmail_config[\'rememberme_user\'] = \'rememberme_user\';</span></div>\n<div>&nbsp;</div>\n<div><span style=\"color: #00ff00\">// Имя пароля&nbsp;cookie&nbsp;для remember_me<br />\n </span><span style=\"color: #3366ff\">$rcmail_config[\'rememberme_pass\'] = \'rememberme_pass\';<br />\n </span></div>\n<div>&nbsp;</div>\n<div><span style=\"color: #00ff00\">// Имя хоста&nbsp;cookie&nbsp;для remember_me<br />\n </span><span style=\"color: #3366ff\">$rcmail_config[\'rememberme_host\'] = \'rememberme_host\';</span></div>\n<div>&nbsp;</div>\n<div><span style=\"color: #00ff00\">?&gt;</span></div>\n</td>\n</tr>\n</tbody>\n</table>\n<p class=\"rtejustify\">Также не лишним будет изменить язык на русский. Сделать это можно в файле <strong>rcguard.js</strong>.</p>\n<p class=\"rtejustify\">Следующий шаг - создание таблицы MySQL. Достаточно просто перенаправить предложенный дамп в БД,&nbsp;которую использует Roundcube:</p>\n<p class=\"rtejustify\">\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td># <strong>mysql -u <span style=\"color: #ff0000\">root</span> -p roundcube &lt; SQL/mysql.initial.sql</strong></td>\n</tr>\n</tbody>\n</table>\n</p>\n<p class=\"rtejustify\">Активируем плагин, добавив его в массив плагинов в файле конфигурации <strong>main.inc.php</strong>:</p>\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td># <strong>cat /usr/local/www/roundcube/config/main.inc.php | grep rcguard<br />\n </strong>$rcmail_config[\'plugins\'] = array(\'<span style=\"color: #ff0000\">rcguard</span>\');</td>\n</tr>\n</tbody>\n</table>\n<p class=\"rtejustify\">На этом настройка плагина заканчивается. После определенного количества ошибочных попыток авторизации,&nbsp;которое задается параметром <strong>failed_attempts</strong>, можно наблюдать результаты работы плагина:</p>\n<p class=\"rtecenter\"><a class=\"thickbox\" title=\"Roundcube rcguard\" href=\"/files/imagepicker/1/roundcube-plugin01.png\"><img class=\"imgp_img\" alt=\"Roundcube rcguard\" src=\"/files/imagepicker/1/thumbs/roundcube-plugin01.png\" /></a></p>\n<hr />\n<h4 class=\"rtecenter\"><span style=\"color: #0000ff\"><a class=\" FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC\" name=\"ServerInfo\">ServerInfo</a></span></h4>\n<p class=\"rtejustify\">Плагин <strong>ServerInfo</strong> служит для отображения базовой информации о сервере. Также есть возможность добавлять свои поля и использовать переменые.</p>\n<p class=\"rtejustify\">Скачиваем плагин <strong>ServerInfo</strong> в директорию плагинов <strong>Roundcube</strong>. Распаковываем загруженый архив и удаляем его, чтобы не засорять файловую систему:</p>\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td># <strong>cd /usr/local/www/roundcube/plugins<br />\n </strong># <strong>fetch </strong><strong>http://muff.kiev.ua/files/roundcube-serverinfo.tar.gz</strong><strong><br />\n </strong>roundcube-serverinfo.tar.gz&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 100% of&nbsp;&nbsp; 16 kB&nbsp;&nbsp; 39 MBps<br />\n # <strong>tar -xzf roundcube-serverinfo.tar.gz<br />\n </strong>#<strong> rm roundcube-serverinfo.tar.gz</strong></td>\n</tr>\n</tbody>\n</table>\n<p class=\"rtejustify\">Для включения плагина добавим его в список подключенных плагинов:</p>\n<p class=\"rtejustify\">\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td># <strong>cat /usr/local/www/roundcube/config/main.inc.php | grep serverinfo<br />\n </strong>$rcmail_config[\'plugins\'] = array(\'<span style=\"color: #ff0000\">serverinfo</span>\');</td>\n</tr>\n</tbody>\n</table>\n</p>\n<p class=\"rtejustify\">Теперь, если зайти в секцию &quot;Настройки&quot;,&nbsp;то можно обнаружить новую закладку &quot;О сервере&quot;. Однако не вся информация корректна. Для &quot;тюнинга&quot;&nbsp;плагина,&nbsp;скопируем файл <strong>config.inc.php.dist</strong> в <strong>config.inc.php</strong>:</p>\n<p class=\"rtejustify\">\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td>\n<p># <strong>cd /usr/local/www/roundcube/plugins/serverinfo<br />\n </strong># <strong>cp config.inc.php.dist config.inc.php</strong></p>\n</td>\n</tr>\n</tbody>\n</table>\n</p>\n<p class=\"rtejustify\">Советую ознакомиться с комментариями в файле <strong>config.inc.php</strong> и отредактировать файл конфигурации под свои нужды. В результате имеем примерно следующий результат:</p>\n<p class=\"rtecenter\"><a class=\"thickbox\" title=\"Roundcube serverinfo\" href=\"/files/imagepicker/1/roundcube-plugin05.png\"><img class=\"imgp_img\" alt=\"Roundcube serverinfo\" src=\"/files/imagepicker/1/thumbs/roundcube-plugin05.png\" /></a></p>\n<p class=\"rtecenter\">&nbsp;</p>\n<hr />\n<h4 class=\"rtecenter\"><span style=\"color: #0000ff\"><a class=\" FCK__AnchorC FCK__AnchorC\" name=\"Sticky_notes\">Sticky notes</a></span></h4>\n<p class=\"rtejustify\">Плагин <strong>sticky notes</strong> позволяет оставлять разнообразные заметки.</p>\n<p class=\"rtejustify\">Скачиваем плагин <strong>sticky notes</strong> в директорию плагинов <strong>Roundcube</strong>. Распаковываем загруженый архив и удаляем его, чтобы не засорять файловую систему:</p>\n<p class=\"rtejustify\">\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td># <strong>cd /usr/local/www/roundcube/plugins<br />\n </strong># <strong>fetch http://muff.kiev.ua/files/roundcube-sticky_notes.tar.gz</strong><br />\n roundcube-sticky_notes.tar.gz&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 100% of 1625 kB&nbsp;&nbsp; 55 MBps<br />\n # <strong>tar -xzf roundcube-sticky_notes.tar.gz<br />\n </strong>#<strong> rm roundcube-sticky_notes.tar.gz</strong></td>\n</tr>\n</tbody>\n</table>\n</p>\n<p class=\"rtejustify\">Создадим файл конфигурации,&nbsp;копированием из предложеного примера:</p>\n<p class=\"rtejustify\">\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td># <strong>cp sticky_notes/config.inc.php.dist sticky_notes/config.inc.php</strong></td>\n</tr>\n</tbody>\n</table>\n</p>\n<p class=\"rtejustify\">Заметки будут храниться в БД. Для создания таблиц воспользуемся предложеным дампом:</p>\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td># <strong>mysql -u root -p roundcube &lt; sticky_notes/SQL/mysql.sql</strong></td>\n</tr>\n</tbody>\n</table>\n<p class=\"rtejustify\">Активируем плагин,&nbsp;добавив его в масив подключенных плагинов в файле конфигурации <strong>main.inc.php</strong>:</p>\n<p class=\"rtejustify\">\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td># <strong>cat /usr/local/www/roundcube/config/main.inc.php | grep sticky_notes<br />\n </strong>$rcmail_config[\'plugins\'] = array(\'<span style=\"color: #ff0000\">sticky_notes</span>\');</td>\n</tr>\n</tbody>\n</table>\n</p>\n<p>Результат примерно такой:</p>\n<p class=\"rtecenter\"><a class=\"thickbox\" title=\"Roundcube sticky notes\" href=\"/files/imagepicker/1/roundcube-plugin08.png\"><img class=\"imgp_img\" alt=\"Roundcube sticky notes\" src=\"/files/imagepicker/1/thumbs/roundcube-plugin08.png\" /></a>&nbsp;</p>\n<hr />\n<h4 class=\"rtecenter\"><span style=\"color: #0000ff\"><a class=\" FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC FCK__AnchorC\" name=\"Userinfo\">Userinfo</a></span></h4>\n<p class=\"rtejustify\">Плагин <strong>Userinfo</strong> служит для отображения некоторой информации о текущем пользователе,&nbsp;создавая новую вкладку в секции &quot;Настройки&quot;. Для включения плагина необходимо добавить его в список подключенных плагинов:</p>\n<p class=\"rtejustify\">\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td># <strong>cat /usr/local/www/roundcube/config/main.inc.php | grep userinfo<br />\n </strong>$rcmail_config[\'plugins\'] = array(\'<span style=\"color: #ff0000\">userinfo</span>\');</td>\n</tr>\n</tbody>\n</table>\n</p>\n<p>Больше никаких дополнительных настроек не нужно.</p>\n<p>Пример работы плагина:</p>\n<p class=\"rtecenter\"><a class=\"thickbox\" title=\"Roundcube plugin\" href=\"/files/imagepicker/1/roundcube-plugin04.png\"><img class=\"imgp_img\" alt=\"Roundcube userinfo\" src=\"/files/imagepicker/1/thumbs/roundcube-plugin04.png\" /></a></p>\n<p>&nbsp;</p>\n', created = 1767436638, expire = 1767523038, headers = '', serialized = 0 WHERE cid = '2:e7e7f81ba3945383111542d9c10e6b04' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 112.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: SELECT data, created, headers, expire, serialized FROM cache_filter WHERE cid = '2:ac32d59928281abf65a78304d5132ddd' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 27.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: UPDATE cache_filter SET data = '<p><strong style=\"line-height: 1.4em; text-align: justify; background-color: rgb(255, 255, 255);\">Все &nbsp;хорошо но не могли бы вы были описать настройку &nbsp;sticky notes через веб интерфейс с хоста так сказать</strong></p>\n', created = 1767436638, expire = 1767523038, headers = '', serialized = 0 WHERE cid = '2:ac32d59928281abf65a78304d5132ddd' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 112.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: SELECT data, created, headers, expire, serialized FROM cache_filter WHERE cid = '2:49e91753a6dc677d4c624555e8aa2964' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 27.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: UPDATE cache_filter SET data = '<p>А это уже в зависимости от предоставленых инструментов.</p>\n<p class=\"rtejustify\">Установка плагина сводится к распаковке модуля в каталог модулей и прописыванию модуля в конфигурационный файл <strong>Roundcube</strong>.</p>\n', created = 1767436638, expire = 1767523038, headers = '', serialized = 0 WHERE cid = '2:49e91753a6dc677d4c624555e8aa2964' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 112.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: SELECT data, created, headers, expire, serialized FROM cache_filter WHERE cid = '2:b1f58154e0889ad9e13f315115f79cf2' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 27.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: UPDATE cache_filter SET data = '<p>&nbsp;</p>\n<p>&nbsp;</p>\n', created = 1767436638, expire = 1767523038, headers = '', serialized = 0 WHERE cid = '2:b1f58154e0889ad9e13f315115f79cf2' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 112.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: SELECT data, created, headers, expire, serialized FROM cache_filter WHERE cid = '2:2430c4b82195634ba4af346abf25a4c8' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 27.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: UPDATE cache_filter SET data = '<p>&nbsp;Распокавал в папку&nbsp;<strong style=\"line-height: 1.4em; text-align: justify; background-color: rgb(255, 255, 255);\">Roundcube/плагины </strong><strong style=\"line-height: 1.4em; text-align: justify; background-color: rgb(255, 255, 255);\">прописал </strong><strong style=\"line-height: 1.4em; text-align: justify; background-color: rgb(255, 255, 255);\">&nbsp;появился плагин в панели почтовика но нет языкавова файла не русского не енглишь может пересмотрите архив</strong></p>\n', created = 1767436638, expire = 1767523038, headers = '', serialized = 0 WHERE cid = '2:2430c4b82195634ba4af346abf25a4c8' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 112.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: SELECT data, created, headers, expire, serialized FROM cache_filter WHERE cid = '2:35d5a3253a10e0654ce65c6e1851c43a' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 27.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: UPDATE cache_filter SET data = '<p>Статья хорошая и полезная!</p>\n<p>НО rcguard (капча) не работает.</p>\n<p>&nbsp;</p>\n<p>// Public key for reCAPTCHA</p>\n<p>$rcmail_config[&#39;recaptcha_publickey&#39;] = &#39;&#39;;</p>\n<p>// Private key for reCAPTCHA<br />\n$rcmail_config[&#39;recaptcha_privatekey&#39;] = &#39;&#39;;</p>\n<p>где брать? Ваши не подходят.</p>\n', created = 1767436638, expire = 1767523038, headers = '', serialized = 0 WHERE cid = '2:35d5a3253a10e0654ce65c6e1851c43a' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 112.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: SELECT data, created, headers, expire, serialized FROM cache_filter WHERE cid = '2:aeeca9f71012e63f0b61982e11837d41' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 27.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: UPDATE cache_filter SET data = '<p>Нашел, необходимо зарегестрировать на google и создать домен идентичный вашему сайту, пусть даже на localhost</p>\n', created = 1767436638, expire = 1767523038, headers = '', serialized = 0 WHERE cid = '2:aeeca9f71012e63f0b61982e11837d41' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 112.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: SELECT data, created, headers, expire, serialized FROM cache_filter WHERE cid = '2:e4f1c0d13ccd6abc1290df5eea2cb5a5' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 27.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: UPDATE cache_filter SET data = '<p>Ключи можно получить на&nbsp;recaptcha.net<br />\nРедирект перебросит на необходимую страницу (в сентябре 2009 Google купил сервис&nbsp;reCAPTCHA).</p>\n', created = 1767436638, expire = 1767523038, headers = '', serialized = 0 WHERE cid = '2:e4f1c0d13ccd6abc1290df5eea2cb5a5' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 112.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: SELECT data, created, headers, expire, serialized FROM cache_filter WHERE cid = '2:b1f58154e0889ad9e13f315115f79cf2' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 27.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: UPDATE cache_filter SET data = '<p>&nbsp;</p>\n<p>&nbsp;</p>\n', created = 1767436638, expire = 1767523038, headers = '', serialized = 0 WHERE cid = '2:b1f58154e0889ad9e13f315115f79cf2' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 112.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: SELECT data, created, headers, expire, serialized FROM cache_filter WHERE cid = '2:07243fc0252056071eaa62af8c18d662' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 27.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: UPDATE cache_filter SET data = '<p class=\"rtecenter\"><a class=\"thickbox\" href=\"/files/imagepicker/1/wake_up_ua.png\"><img alt=\"Вставай, Україно!\" class=\"imgp_img\" src=\"/files/imagepicker/1/thumbs/wake_up_ua.png\" style=\"height:200px; width:150px\" /></a></p>\n', created = 1767436638, expire = 1767523038, headers = '', serialized = 0 WHERE cid = '2:07243fc0252056071eaa62af8c18d662' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 112.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: SELECT data, created, headers, expire, serialized FROM cache_filter WHERE cid = '3:cc913d232116f0426090404133377d88' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 27.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: SELECT data, created, headers, expire, serialized FROM cache_filter WHERE cid = '2:d9a86123bfcbc57878743027b584400b' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 27.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: UPDATE cache_filter SET data = '<p class=\"rtecenter\"><a href=\"http://muff.kiev.ua/rss.xml\"><img alt=\"RSS\" width=\"160\" height=\"60\" src=\"http://muff.kiev.ua/files/muf-rss.png\" /></a></p>\n', created = 1767436638, expire = 1767523038, headers = '', serialized = 0 WHERE cid = '2:d9a86123bfcbc57878743027b584400b' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 112.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: SELECT data, created, headers, expire, serialized FROM cache_filter WHERE cid = '3:39649256b636e3d5ded656bc52bd8c01' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 27.
Версия для печатиОтправить другуPDF version

Roundcube logo

Решил расширить стандартные возможности почтового web-интерфейса Roundcube с помощью плагинов. Возможностями некоторых из них и воспользуемся... Список плагинов, рассмотреных в статье следующий (кликнув на ссылку, попадаем сразу к описанию процесса настройки):

Значительное число плагинов Roundcube доступно из репозитория плагинов Roundcube. Пока опробованы только некоторые из них. Если будете тестировать какие-либо новые плагины, не затронутые в этой статье - просьба описать процес установки и поделиться через форму обратной связи.


Additional_message_headers

Плагин Additional_message_headers позволяет добавить для писем, отправляемых через web-интерфейс Roundcube, дополнительные хэдеры, такие как:

  • X-Remote-Browser
  • X-Originating-IP
  • X-RoundCube-Server

Конечно же, чем больше дополнительной информации, тем проще будет любому админинистратору при ковырянии "что, кому и откуда".

Установка плагина не составляет труда. Для активации плагина необходимо добавить его в список подключенных плагинов:

# 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'];
$rcmail_config['additional_message_headers']['X-Originating-IP'] = $_SERVER['REMOTE_ADDR'];
$rcmail_config['additional_message_headers']['X-RoundCube-Server'] = $_SERVER['SERVER_ADDR'];

?>

Теперь в письмах, при просмотре заголовков можно обнаружить такие записи:

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

Плагин 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"; // Куда писать логи попыток авторизации
private $attempts=3; // Количество попыток перед блокировкой доступа
private $registeredAttemptsInTime=0; // Переменная, которая хранит число попыток авторизации за
              // определенный промежуток времени
private $time=600; // Время между попытками
private $blockedTime=null; // Хранит оставшиеся блокировки в секундах
private $message="<center><b><font color=\"red\">Access is temporally forbidden.</font></b></center><br> Wait: ";
              // Сообщение об ошибке при блокировке

Потом необходимо активировать плагин, добавив его в массив плагинов в файле конфигурации main.inc.php:

# cat /usr/local/www/roundcube/config/main.inc.php | grep antiBruteForce
$rcmail_config['plugins'] = array('antiBruteForce');

На этом настройку плагина antiBruteForce можно считать законченой. После указанного количества попыток (переменная $attempts) неверной авторизации можно будет наблюдать такое окошко:

 Roundcube antiBruteForce


 Archive

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

Для активации плагина необходимо добавить его в список подключенных плагинов:

# cat /usr/local/www/roundcube/config/main.inc.php | grep archive
$rcmail_config['plugins'] = array('archive');

 После активации плагина необходимо создать каталог, в который и будем перемещать письма для архивации:

  1. Войти в "Настройки"
  2. Выбрать закладку "Папки"
  3. Нажать на кнопку создания нового каталога
  4. Указать имя каталога. Например "Archive"
  5. Сохранить изменения

     

 Roundcube archive

 Следующий шаг - указываем каталог, в котором письма будут архивироваться:

  1. Войти в "Настройки"
  2. Выбрать закладку "Настройки"
  3. Выбрать раздел "Особые папки"
  4. Указать, для каталога "Archive" тип "Архив"
  5. Сохранить изменения

Roundcube archive

В результате на панели инструментов Roundcube появится новая кнопка "Переместить выбранное в архив".


Compose addressbook

Плагин Compose addressbook позволяет использовать адресную книгу во время компоновки нового письма.

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

ВНИМАНИЕ! Даная версия плагина только для Roundcube 0.6 и выше. 

# cd /usr/local/www/roundcube/plugins
# fetch http://muff.kiev.ua/files/roundcube-compose_addressbook.tgz
roundcube-compose_addressbook.tgz             100% of   30 kB   17 MBps
# tar -xzf roundcube-compose_addressbook.tgz
# rm roundcube-compose_addressbook.tgz

Создадим файл конфигурации плагина, копированием из предложенного примера:

# 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 добавляет в режиме создания письма кнопку, нажав на которую, выпадающий список "От кого:" заменяется полем ввода даных.

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

# cd /usr/local/www/roundcube/plugins
# fetch http://muff.kiev.ua/files/roundcube-custom_from.tgz
roundcube-custom_from.tgz                     100% of 2005  B   10 MBps
# tar -xzf roundcube-custom_from.tgz
# rm roundcube-custom_from.tgz

Активируем плагин, добавив его в массив подключенных плагинов:

# cat /usr/local/www/roundcube/config/main.inc.php | grep custom_from
$rcmail_config['plugins'] = array('custom_from');

Вот и все... Настройка плагина завершена.

 


 

Custom logo

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

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

# cd /usr/local/www/roundcube/plugins
# fetch http://muff.kiev.ua/files/roundcube-custom_logo.tar.gz
roundcube-custom_logo.tar.gz                  100% of 7352  B   30 MBps
# tar -xzf roundcube-custom_logo.tar.gz
# rm roundcube-custom_logo.tar.gz

Создадим файл конфигурации, копированием из предложеного примера:

# 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.


Custom title

Плагин сustom title позволяет изменять заголовок страницы, добавляя, например, имя текущего пользователя. Скачаем архив с плагином в каталог плагинов Roundcube и распакуем его. Также удалим архив, чтобы не засорять файловую систему:

# cd /usr/local/www/roundcube/plugins
# fetch http://muff.kiev.ua/files/roundcube-custom_title.tar.gz
roundcube-custom_title.tar.gz                 100% of 1140  B 8308 kBps
# tar -xzf roundcube-custom_title.tar.gz
# rm roundcube-custom_title.tar.gz

Активируем плагин, добавив его в список подключенных плагинов:

# cat /usr/local/www/roundcube/config/main.inc.php | grep custom_title
$rcmail_config['plugins'] = array('custom_title');

На этом базовая настройка модуля завершена.


Drag upload

Плагин drag upload реализовывает возможность прикреплять файлы к письму простым перетаскиванием.  Скачаем архив с плагином в каталог плагинов Roundcube и распакуем его. После этого удалим архив, чтобы не засорять файловую систему:

# cd /usr/local/www/roundcube/plugins
# fetch http://muff.kiev.ua/files/roundcube-drag_upload.tar.gz
roundcube-drag_upload.tar.gz                  100% of 3071  B   15 MBps
# tar -xzf roundcube-drag_upload.tar.gz
# rm roundcube-drag_upload.tar.gz

Активируем плагин, добавив его в список подключенных плагинов:

# cat /usr/local/www/roundcube/config/main.inc.php | grep drag_upload
$rcmail_config['plugins'] = array('drag_upload');

На этом базовая настройка модуля завершена.


Emoticons

Плагин emoticons выполняет автоматическую замену смайликов в текстовом виде на графические иконки.  Плагин есть в стандартной инсталяции Roundcube. Для активации плагина необходимо всего лишь добавить его в список подключенных плагинов:

# cat /usr/local/www/roundcube/config/main.inc.php | grep emoticons
$rcmail_config['plugins'] = array('emoticons');

 После подключение плагина имеем такую таблицу преобразований:

Текстовое отображение Графическое отображение
:) Smile
:-) Smile
:D laughing
:-D laughing
:( frown
:-( frown
;) wink
;-) wink
8) cool
8-) cool
:O cool
:-O cool
:P cool
:-P cool
:@ cool
:-@ cool
O:) cool
O:-) cool
:$ cool
:-$ cool
:* cool
:-* cool
:S cool
:-S cool

Вот так-то... Однако, данный плагин имеет недостаток (особенно актуально для програмеров и системных администраторов). Если отправлять, например, какой-то кусок кода скрипта в письме, а не вложением - будет выполнена замена по всему скрипту, что не очень удобно.


Language Selector

Даний плагин добавляет возможность переключатель языка на странице авторизации.

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

# cd /usr/local/www/roundcube/plugins
# fetch http://muff.kiev.ua/files/roundcube-language_selector.tar.gz
roundcube-language_selector.tar.gz            100% of 2155  B   11 MBps
# tar -xzf roundcube-language_selector.tar.gz
# rm roundcube-language_selector.tar.gz

Создадим конфигурационный файл 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');

Результат работы модуля:

Roundcube language selector


 Login info

Действие плагина Login info довольно простое - отображение дополнительной информации на странице авторизации. В ряде случаев эта возможность может оказаться довольно даже полезной.

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

# cd /usr/local/www/roundcube/plugins
# fetch http://muff.kiev.ua/files/roundcube-login_info.tar.gz
roundcube-login_info.tar.gz                   100% of 2534  B   13 MBps
# tar -xzf roundcube-login_info.tar.gz
# rm roundcube-login_info.tar.gz

Создадим конфигурационный файл 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');

Пример работы модуля:

Roundcube login_info



 Newmail notifier

Плагин 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

Плагин Persistent login будет полезным для пользователей, которые не любят авторизовываться каждый раз при заходе в свой почтовый аккаунт. Плагин сохраняет cookie пользователя и автоматически выполняет вход в почтовый аккаунт при следующем посещении пользователем.

Загрузим плагин и поместим его в каталог /usr/local/www/roundcube/plugins:

# cd /usr/local/www/roundcube/plugins
# fetch http://muff.kiev.ua/files/roundcube-persistent_login.tar.gz
roundcube-persistent_login.tar.gz             100% of 5337  B   27 MBps
# tar -xzf roundcube-persistent_login.tar.gz
# rm roundcube-persistent_login.tar.gz

Активируем плагин, добавив его в массив подключенных плагинов 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

Плагин Rcguard реализовывает вызов reCAPTCHA после определенного количества неудачных попыток авторизации. В идеале плагин Rcguard можно настроить на совмесную работу с antiBruteForce. После 3 неудачных попыток авторизации появляется reCAPTCHA, а после еще 3 неудачных попыток доступ блокируется на определенное время.

Итак, загрузим плагин и поместим его в каталог /usr/local/www/roundcube/plugins:

# cd /usr/local/www/roundcube/plugins
# fetch http://muff.kiev.ua/files/roundcube-rcguard.tar.gz
roundcube-rcguard.tar.gz                  100% of 8709 B 34 MBps
# tar -xzf roundcube-rcguard.tar.gz
# rm roundcube-rcguard.tar.gz

Ознакамливаемся с 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, можно наблюдать результаты работы плагина:

Roundcube rcguard


ServerInfo

Плагин 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
# cp config.inc.php.dist config.inc.php

Советую ознакомиться с комментариями в файле config.inc.php и отредактировать файл конфигурации под свои нужды. В результате имеем примерно следующий результат:

Roundcube serverinfo

 


Sticky notes

Плагин 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');

Результат примерно такой:

Roundcube sticky notes 


Userinfo

Плагин Userinfo служит для отображения некоторой информации о текущем пользователе, создавая новую вкладку в секции "Настройки". Для включения плагина необходимо добавить его в список подключенных плагинов:

# cat /usr/local/www/roundcube/config/main.inc.php | grep userinfo
$rcmail_config['plugins'] = array('userinfo');

Больше никаких дополнительных настроек не нужно.

Пример работы плагина:

Roundcube userinfo

 

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

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).

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

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

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

Литература

Капля никотина убивает - лошадь, а чашка кофе - клавиатуру.