ROUNDCUBE

Материал из support.qbpro.ru

. Global Address Book for Roundcube

.Roundcube из коробки поддерживает LDAP..
Смотрите файл config/defaults.inc.php для примера (раздел ADDRESSBOOK SETTINGS)
- читать LDAP-Address-Books

Если же надо использовать SQL, то есть соответствующий плагин globaladdressbook

. Добавление плагина roundcube для антиспама

Всем доброго времени суток. Сегодня я расскажу Вам как поставить плагин на веб морду (riundcube) появится кнопка пометить как спам и наоборот вытащить из спама (т.е. снять метку СПАМ) Приятная особенность плагина состоит в том, что он позволяет через sa-learn обучать SpamAssassin

И так поехали
Скачиваем плагин, можно здесь
вытаскиваем из архива и помещаем его в плагины riundcube. Путь примерно такой /roundcubemail/plugins
Далее:
Редактируем конфиг main.inc.php

находим параметр

$rcmail_config['plugins'] = array(); и дополняем его $rcmail_config['plugins'] = array(markasjunk2);

если у вас уже стоят плагины, просто перечисляете их через запятую

Открываем конфиг плагина plugins/markasjunk2/config.inc.php
если файла "config.inc.php", нет создаем его из исходного "config.inc.php.dist"

находим параметр

$rcmail_config['markasjunk2_learning_driver'] = null;

и меняем значение на 'cmd_learn'

$rcmail_config['markasjunk2_learning_driver'] = 'cmd_learn';

дальше находим параметр

$rcmail_config['markasjunk2_spam_cmd'] = null;

и меняем его на

$rcmail_config['markasjunk2_spam_cmd'] = 'sa-learn --spam --no-sync --username=%u %f';

где %u - имя пользователя, %f - полный путь к письму.
Таким образом мы 'sa-learn' указываем письмо %f как СПАМ, а эти настройки просим применить для пользователя %u.

аналогично исправляем параметр

$rcmail_config['markasjunk2_ham_cmd'] = null;

на

$rcmail_config['markasjunk2_ham_cmd'] ='sa-learn --ham --no-sync --username=%u %f';

это обучит SpamAssassin пропускать нормальную почту.

Последний этап, это смена кодировки:
открываем конфиг RoundCube

roundcubemail/config/main.inc.php

находим эту запись:

// Use this charset as fallback for message decoding

$rcmail_config['default_charset'] = 'ISO-8859-1';

и меняем кодировку на UTF-8

// Use this charset as fallback for message decoding

$rcmail_config['default_charset'] = 'UTF-8';

. Добавление плагина календарь в RoundCube

1. Скачиваем тут 2. Устанавливаем утилиту lessc

apt-get install node-less

3. Выполняем все по инструкции:

...
1. Get the source from git

 $ cd /tmp
 $ git clone https://git.kolab.org/diffusion/RPK/roundcubemail-plugins-kolab.git
 $ cd /<path-to-roundcube>/plugins
 $ cp -r /tmp/roundcubemail-plugins-kolab/plugins/calendar .
 $ cp -r /tmp/roundcubemail-plugins-kolab/plugins/libcalendaring .
 $ cp -r /tmp/roundcubemail-plugins-kolab/plugins/libkolab .

2. Create calendar plugin configuration

 $ cd calendar/
 $ cp config.inc.php.dist config.inc.php
 $ edit config.inc.php

3. Initialize the calendar database tables

 $ cd ../../
 $ bin/initdb.sh --dir=plugins/calendar/drivers/database/SQL

4. Build css styles for the Elastic skin

 $ lessc --relative-urls -x plugins/libkolab/skins/elastic/libkolab.less > plugins/libkolab/skins/elastic/libkolab.min.css

5. Enable the calendar plugin

 $ edit config/config.inc.php

Add 'calendar' to the list of active plugins:

 $config['plugins'] = array(
   (...)
   'calendar',
 );

  • Внимание - календарь работает только в skin 'elastic'

. Roundcube поиск в письмах больше 2000

В php.ini:

max_execution_time = 600
max_input_time = 600

В app.js:

// environment defaults
  this.env = {
    request_timeout: 600,  // seconds
    _request_timeout: 180, // seconds
    draft_autosave: 0,     // seconds
    comm_path: './',
    recipients_separator: ',',
    recipients_delimiter: ', ',
    popup_width: 1150,
    popup_width_small: 900
  };

В app.min.js дописать в сл. строке:

...
this.env={request_timeout:600,draft_autosave:0,comm_path:"./",recipients_separator:",",recipients_delimiter:", ",popup_width:1150,popup_width_small:900};

Postgresql - addres book

Создание таблицы:

  • MySql:
CREATE TABLE `collected_addresses` (
 `address_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
 `changed` datetime NOT NULL DEFAULT '1000-01-01 00:00:00',
 `name` varchar(255) NOT NULL DEFAULT ,
 `email` varchar(255) NOT NULL,
 `user_id` int(10) UNSIGNED NOT NULL,
 `type` int(10) UNSIGNED NOT NULL,
 PRIMARY KEY(`address_id`),
 CONSTRAINT `user_id_fk_collected_addresses` FOREIGN KEY (`user_id`)
   REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE,
 UNIQUE INDEX `user_email_collected_addresses_index` (`user_id`, `type`, `email`)
) ROW_FORMAT=DYNAMIC ENGINE=INNODB CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

  • Postgresql:
CREATE TABLE collected_addresses (
    address_id INT unique default '1' PRIMARY KEY,
    changed TIMESTAMP DEFAULT '1979-11-03 22:05:58' NOT NULL,
    name VARCHAR(255) DEFAULT  NOT NULL,
    email VARCHAR(255) NOT NULL,
    user_id INT  NOT NULL,
    type INT  NOT NULL,
    CONSTRAINT user_id_fk_collected_addresses FOREIGN KEY (user_id)
     REFERENCES users(user_id) ON DELETE CASCADE ON UPDATE CASCADE
);
CREATE UNIQUE INDEX user_email_collected_addresses_index ON collected_addresses (user_id, type, 
email);
  • Postgresql права на таблицу:
GRANT ALL PRIVILEGES ON collected_addresses TO roundcube;