Общая адресная книга в Roundcube
Для создания общей адресной книги в Roundcube, необходимо скачать и настроить плагин Roundcube Webmail GlobalAddressbook.
Скачайте, распакуйте и перенесите файлы в каталог плагинов Roundcube:
wget -q "https://github.com/johndoh/roundcube-globaladdressbook/archive/refs/heads/master.zip" -O /tmp/plugin.zip && \
unzip -q /tmp/plugin.zip -d /tmp && \
mv /tmp/roundcube-globaladdressbook-master /usr/share/roundcube/plugins/globaladdressbook && \
rm -f /tmp/plugin.zipwget -q "https://github.com/johndoh/roundcube-globaladdressbook/archive/refs/heads/master.zip" -O /tmp/plugin.zip && \
unzip -q /tmp/plugin.zip -d /tmp && \
mv /tmp/roundcube-globaladdressbook-master /usr/share/roundcubemail/plugins/globaladdressbook && \
rm -f /tmp/plugin.zipПереименуйте шаблон конфигурационного файла:
mv /usr/share/roundcube/plugins/globaladdressbook/config.inc.php.dist /usr/share/roundcube/plugins/globaladdressbook/config.inc.phpmv /usr/share/roundcubemail/plugins/globaladdressbook/config.inc.php.dist /usr/share/roundcubemail/plugins/globaladdressbook/config.inc.phpДалее вы можете настроить адресную книгу по своему усмотрению, например имя книги, права доступа, группы и так далее.
В конфигурационный файл Roundcube /etc/roundcube/config.inc.php (для RHEL-based систем путь /etc/roundcubemail/config.inc.php) добавляем имя плагина в список:
$config['plugins'] = array(
'autologin',
'globaladdressbook',
);В панели ispmanager 6
Если вы используете Roundcube из панели ispmanager 6, необходимо будет внести изменения в работу плагина, а именно - заменить функцию str_contains на её классический аналог strpos. Это связано с тем, что плагин написан для работы на PHP 8-ой версии, в то время как Roundcube в ispmanager 6 использует для работы PHP 7.4.
Для этого выполните следующие команды:
sed -i '166s/(str_contains($username, '\''@'\'')/(strpos($username, '\''@'\'') !== false/g' /usr/share/roundcube/plugins/globaladdressbook/globaladdressbook.php
sed -i '254s/(str_contains($str, '\''%i'\''))/(strpos($str, '\''%i'\'') !== false)/g' /usr/share/roundcube/plugins/globaladdressbook/globaladdressbook.phpsed -i '166s/(str_contains($username, '\''@'\'')/(strpos($username, '\''@'\'') !== false/g' /usr/share/roundcubemail/plugins/globaladdressbook/globaladdressbook.php
sed -i '254s/(str_contains($str, '\''%i'\''))/(strpos($str, '\''%i'\'') !== false)/g' /usr/share/roundcubemail/plugins/globaladdressbook/globaladdressbook.php