Инструменты пользователя

Инструменты сайта


roundcube:roundcube

RoundCube

Содержание

RoundCube — это клиент для работы с электронной почтой с веб-интерфейсом, написанный на PHP.

Здесь описана работа с стандартным продуктом.

roundcube.net

RoundcubeMail

Работа с программой из пакетной базы Debian находится на отдельной странице

Помощь в работе с программой

Работа с LDAP

Настройка Fail2Ban

Установка

FIXME

Основная папка /opt/roundcube/

Работа с адресными книгами LDAP

Установка необходимых пакетов

roundcube_install.sh
#!/bin/bash
 
apt install\
    apache2 libapache2-mod-php\
    libmagic1\
    spawn-fcgi\
    php\
    php-auth-sasl\
    php-cli\
    php-common\
    php-intl\
    php-json\
    php-ldap\
    php-mail-mime\
    php-ldap\
    php-net-sieve\
    php-net-smtp\
    php-net-socket\
    php-pear\
    php-fpm\
    php-gd\
    php-pspell\
    php-mbstring\
    php-zip\

FIXME

roundcube_init.sh
#!/bin/bash
 
phpenmod mbstring zip
service apache2 reload

Распаковка дистрибутива

tar -zxvf roundcubemail-1.2.3-complete.tar.gz -C /opt/

Настройка HTTP сервера

Создать файл /opt/roundcube/config/apache.conf

apache.conf

apache.conf

apache.conf
# Roundcube apache.conf
Alias /roundcube/program/js/tiny_mce/ /usr/share/tinymce/www/
Alias /roundcube /opt/roundcube
 
# Access to tinymce files
<Directory /usr/share/tinymce/www/>
	Options Indexes MultiViews FollowSymLinks
	AllowOverride None
	Order allow,deny
	allow from all
</Directory>
 
<Directory /opt/roundcube/>
	Options +FollowSymLinks
	# This is needed to parse /opt/roundcube/.htaccess. See its
	# content before setting AllowOverride to None.
	AllowOverride All
	order allow,deny
	allow from all
</Directory>
 
# Protecting basic directories:
<Directory /opt/roundcube/config>
	Options -FollowSymLinks
	AllowOverride None
</Directory>
 
<Directory /opt/roundcube/temp>
	Options -FollowSymLinks
	AllowOverride None
	Order allow,deny
	Deny from all
</Directory>
 
<Directory /opt/roundcube/logs>
	Options -FollowSymLinks
	AllowOverride None
	Order allow,deny
	Deny from all
</Directory>
 
<VirtualHost *:80>
	DocumentRoot /opt/roundcube
	ServerName mail.domain.ru
</VirtualHost>
roundcube_apache.sh
#!/bin/bash
 
# Создаем символическую ссылку
ln -s /opt/roundcube/config/apache.conf /etc/apache2/sites-available/roundcube.conf
# Разрешаем сайт
a2ensite roundcube
 
#Добавить модули
a2enmod deflate
a2enmod expires
a2enmod headers
 
# Перезапуск 
service apache2 reload

Добавить исключение в файл:

/etc/apache2/apache2.conf
<Directory /opt>
	Options Indexes FollowSymLinks
	AllowOverride None
	Require all granted
</Directory>

Перезапуск Apache

service apache2 restart

SQLite

SQLite

Необходимо:

  1. установить пакеты:
    apt install php-pear php-sqlite3 php7.3-sqlite
  2. выполнить перезапуск Apache
    service apache2 restart

Создание БД:

roundcube-sqlite_create-db.sh
#!/bin/bash
 
path=/opt/roundcube
mkdir $path/db
cd $path/db
sqlite3 -init  $path/SQL/sqlite.initial.sql roundcube.sqlite '.quit'
chown -R www-data $path
chgrp -R www-data $path
chmod -R 775 $path/db

Указание БД в файле настройки:

config/config.inc.php
$config['db_dsnw'] = 'sqlite:////opt/roundcube/db/roundcube.sqlite?mode=0646';

Bahut: Roundcube webmail with SQLite on Debian

Примеры работы с таблицами

  • sqlite3 roundcube.sqlite 'DELETE FROM session;'
  • sqlite3 roundcube.sqlite 'DELETE FROM cache;'
  • sqlite3 roundcube.sqlite 'DELETE FROM contacts;'

Обновление

FIXME

wget https://github.com/roundcube/roundcubemail/releases/download/1.2.3/roundcubemail-1.2.3-complete.tar.gz

tar -zxvf roundcubemail-1.2.3-complete.tar.gz  -C /opt/

Нужно ознакомиться с /opt/roundcubemail-1.2.3/UPGRADING

cd /opt/roundcubemail-1.2.3
./bin/installto.sh /opt/roundcube

Настройка

Установка правильной временной зоны (timezone)

1. В файле /etc/php5/apache2/php.ini нужно указать

date.timezone = Europe/Moscow

и перезапустить Apache

2. В /etc/roundcube/main.inc.php нужно указать

$rcmail_config['timezone'] = 'auto';

Установка прав на папки и файлы

Скрипт для установки прав на папки и файлы

Скрипт для установки прав на папки и файлы

roundcube_opt_rights.sh
path=/opt/roundcube
chown -R www-data $path
chgrp -R www-data $path
find $path -type f -exec chmod 644 {} \;
find $path -type d -exec chmod 755 {} \;
 
path=/opt/roundcube/config/debian-db-roundcube.php
chown root $path
chgrp root $path
chmod 644 $path
 
path=/opt/roundcube/config/debian-db.php
chown root $path
chgrp www-data $path
chmod 640 $path
 
path=/opt/roundcube/config/config.inc.php
chown root $path
chgrp www-data $path
chmod 640 $path
 
path=/opt/roundcube/plugins/password/config.inc.php
chown root $path
chgrp www-data $path
chmod 640 $path
 
# sqllite
path=/opt/roundcube/db
chmod -R 775 $path

Логотип

FIXME

config.inc.php
$config['skin_logo'] = array (
    '*' => '/images/roundcube_logo.png',
    'messageprint' => '/images/roundcube_logo_print.png');

Расширения (plugins)

Основная папка /opt/roundcube/plugins

Для использования расширения его нужно внести в список plugins файла config.inc.php, пример:

$config['plugins'] = array(
    'archive',
    'zipdownload',
    'userinfo',
    'password',
    'dovecot_impersonate',
    'newmail_notifier',
    'acl',
    'managesieve',
);

newmail_notifier

Показ в браузере уведомления о приходе нового сообщения нужно расширение HTML Desktop Notifications

Для Firefox до версии 22 нужен: HTML Desktop Notifications, HTML Desktop Notifications 1.2.4
Пример: newmail_notifier 0.7, FireFox 12 + html5notifications-1.2.4

keyboard_shortcuts

https://github.com/corbosman/keyboard_shortcuts

Установка:

cd /tmp; wget https://github.com/corbosman/keyboard_shortcuts/archive/master.zip

Для исправления изображения клавиатуры в classic_compactнужно сделать ссылку:

ln -s /opt/roundcube/plugins/keyboard_shortcuts/skins/classic /opt/roundcube/plugins/keyboard_shortcuts/skins/classic_compact

contextmenu

Установка:

cd /tmp; wget https://github.com/johndoh/roundcube-contextmenu/archive/master.zip

login_view

https://github.com/dummyluck/login_view

Установка:

cd /tmp; wget https://github.com/dummyluck/login_view/archive/master.zip

Настройка password

Для работы в паролями которые лежат в LDAP, нужно выполнить

apt-get install php-net-ldap2

и настроить связь с LDAP сервером в config.inc.php

Настройка календаря

FIXME

http://git.kolab.org/roundcubemail-plugins-kolab/snapshot/roundcubemail-plugins-kolab-3.0.1.tar.gz

mysql roundcube -uroundcube -pПАРОЛЬ </var/lib/roundcube/plugins/calendar/drivers/database/sql/mysql.sql

:!: Для работы необходима папка libcalendaring из того же архива

Работа с Sieve

Для работы с Sieve нужно расширение managesieve, вот пример файла настройки:

config.inc.php
<?php
$rcmail_config['managesieve_port'] = 4190;
$rcmail_config['managesieve_mbox_encoding'] = 'UTF-8';
$rcmail_config['managesieve_host'] = '%h';
?>

Работа от имени мастер-пользователя

Для работы от имени мастер-пользователя Dovecot нужно:

  1. Загрузить расширение dovecot_impersonate
    cd /tmp; wget https://github.com/corbosman/dovecot_impersonate/archive/master.zip
  2. Указать в его настройках разделитель между именами пользователя и мастер–пользователя:
    config.inc.php
    <?php
    $rcmail_config['dovecot_impersonate_seperator'] = '*';
    ?>

zipdownload

Это расширение позволяет загрузить все вложения в виде zip файла.

Для работы с русским языком нужно:

plugins/zipdownload/config.inc.php
$rcmail_config['zipdownload_charset'] = 'UTF-8';

Для старых версий:

1. Установить значение кодовой страницы cp866

plugins/zipdownload/config.inc.php
$rcmail_config['zipdownload_charset'] = 'cp866';

2. Для старых версий дополнительно нужно в файле plugins/zipdownload/zipdownload.php заменить:

$disp_name = $this->_convert_filename($part->filename);

на

$disp_name = $this->_convert_filename($part->filename, $part->charset);

thunderbird-labels

https://github.com/mike-kfed/rcmail-thunderbird-labels

Установка:

cd /tmp; wget https://github.com/mike-kfed/roundcube-thunderbird_labels/archive/master.zip

html5_notifier

Установка:

cd /tmp; wget https://github.com/stremlau/html5_notifier/archive/master.zip

Работа через IMAP Proxy

Если RoundCube установлен не на не одном физическом сервере с IMAP сервером то для повышения скорости работы нужно установить IMAP Proxy

В файле /etc/roundcube/main.inc.php нужно указать:

$rcmail_config['default_host'] = array("localhost");
$rcmail_config['default_port'] = 1143;
$rcmail_config['smtp_server'] = 'СЕРВЕР SMTP';

Создание пользователей

Имена пользователей

файл /etc/roundcube/main.inc.php

Имена пользователей будут приведены к нижнему регистру, поэтому в таблице users они должны быть в нижнем регистре

$rcmail_config['login_lc'] = true;

Запрет создания нового пользователя

$rcmail_config['auto_create_user'] = false;

Работа с таблицами

FIXME

Тип объектаТаблица
Пользователиusers
Профилиidentities

Для каждого пользователя создается свой профиль.

Для управление содержимым БД: Adminer

Работа в SQL Buddy, примеры:

users.sql
--
-- MySQL 5.1.66
-- RoundCube 0.85
--
INSERT INTO `users` (`user_id`, `username`, `mail_host`, `alias`, `created`, `last_login`, `language`, `preferences`) VALUES 
('1','user1', 'localhost', '', '', '', 'ru_RU', 'a:1:{s:24:\"newmail_notifier_desktop\";b:1;}'),
('2','user2', 'localhost', '', '', '', 'ru_RU', 'a:1:{s:24:\"newmail_notifier_desktop\";b:1;}');
identity.sql
--
-- MySQL 5.1.66
-- RoundCube 0.85
--
 
INSERT INTO `identities` (`identity_id`, `del`, `standard`, `name`, `organization`, `email`, `reply-to`, `bcc`, `signature`, `html_signature`, `user_id`, `changed`) VALUES 
('1', '0', '1','Фамилия1 Имя1','','user1@domain.com', '', '', '', '0', '1', ''),
('2', '0', '1','Фамилия2 Имя2','','user2@domain.com', '', '', '', '0', '2', '');

:!: Таблицы identity и users связаны по полю user_id

Импорт персональных адресных книг

FIXME

Для импорта из формата wab нужно:

1. Открыть адресную книгу, выбрать нужные контакты и мышкой перетащить и отпустить в нужную папку
2. copy *.vcf 1.vsf


Требования к формату vcard:

1. Кодировка файла UTF-8

2. Если не email, то заменяем его на несуществущий адрес формата:
EMAIL;TYPE=INTERNET:0@0.0


3. Если контакт входил к группу, то название пишем разделе Другие
NOTE:ИМЯ ГРУППЫ

Проверка русской орфографии

В файле /usr/share/roundcube/program/steps/mail/compose.inc нужно добавить русский язык (можно убрать лишние) в строке:

$spellcheck_langs = (array)$RCMAIL->config->get('spellcheck_languages', array('ru'=>'Russian', 'en' => 'English'));

Если необходимо, то поставить:

apt-get install aspell-ru

MySQL / MariaDB

Основная глава по MySQL / MariaDB

Создание БД

mysql -u root -p
CREATE DATABASE roundcube /*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;
GRANT ALL PRIVILEGES ON roundcube.* TO roundcube@localhost IDENTIFIED BY 'ПАРОЛЬ_ПОЛЬЗОВАТЕЛЯ_roundcube';
quit;

Инициализация БД

mysql -u roundcube -p roundcube < /opt/roundcube/SQL/mysql.initial.sql

Нужно ввести пароль пользователя roundcube

Резервное копирование

roundcube_backup_mysql.sh
mysqldump roundcube -uroundcube -hСЕРВЕР -pПАРОЛЬ > /etc/roundcube/roundcube.`date '+%u'`.sql

Сохранение имени и пароля пользователя в броузере

В файле main.inc.php нужно задать значение переменной:

$config['login_autocomplete']

Значения:

  • 0 = отключить
  • 1 = только имя и сервер
  • 2 = все: имя , сервер и пароль

Размер вложения

/etc/php/7.3/apache2/php.ini
upload_max_filesize = 20M
post_max_size = 28M
max_file_uploads = 50

Чтобы изменения вступили в силу нужно перечитать настройки Apache:

service apache2 reload

При использовании Nginx нужно установить нужное значение переменной:

nginx.conf
client_max_body_size 20m;

nginx - Roundcube, upload fail - Server Fault

Запрет изменения оформления (скина) пользователем

В файле /etc/roundcube/main.inc.php нужно заменить

$rcmail_config['dont_override'] = array();

на

$rcmail_config['dont_override'][] = 'skin';

Classic Theme Compact without company logo

e-mail на странице

FIXME

/usr/share/roundcube/skins/classic/includes/taskbar.html

<div id="taskbar">
<span style="font-weight: bold;"><roundcube:object name="username" /></span>
&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;&nbsp;

Исправления перевода

Файл /var/lib/roundcube/program/localization/ru_RU/messages.inc

$messages['folderpurged'] = 'Папка очищена';
$messages['folderexpunged'] = 'Папка сжата';

Работа с gmail (google mail)

ИмяПОЛЬЗОВАТЕЛЬ@ДОМЕН
Сервер
ssl://imap.gmail.com

http://linuxmacwinstuff.blogspot.ru/2012/07/access-gmail-with-roundcube.html

Решение проблем

PHP Error: Deprecated hook name

В если /var/log/roundcube/errors:

PHP Error: Deprecated hook name. imap_connect -> storage_connect

То в dovecot_impersonate.php нужно заменить imap_connect на storage_connect

Не отображаются изображения

Во входящих сообщениях не отображаются изображения.

Нужно исправить значение mime_magic

Вариант 11):

main.inc.php
$rcmail_config['mime_magic'] = null;

Вариант 22):

main.inc.php
$rcmail_config['mime_magic'] = '/usr/share/mime/magic';

Ссылки

roundcube/roundcube.txt · Последние изменения: 2024-02-13 12:21 — GreyWolf