Инструкция по установке Roundcube Webmail на Ubuntu 22.04/20.04 с использованием PostgreSQL

Roundcube — это бесплатный почтовый веб-клиент с открытым исходным кодом, разработанный на языке PHP. Он позволяет работать с электронной почтой прямо через браузер, заменяя традиционные настольные почтовые программы, такие как Mozilla Thunderbird. В этом руководстве объясняется, как установить веб-клиент Roundcube на Ubuntu 22.04/20.04, используя сервер базы данных PostgreSQL.

Возможности Roundcube

Возможности Roundcube включают:

  • Книга контактов
  • Организация каталогов
  • Поиск по сообщениям
  • Отбор сообщений
  • Проверка правописания.
  • Поддержка формата MIME
  • Шифрование и подпись с помощью PGP.
  • Интеграция с Mailvelope.
  • Пользователи имеют возможность менять свои пароли в Roundcube.
  • Импорт сообщений в формате MIME или Mbox.
  • Возврат электронной почты (Bounce)
  • Поддержка кэширования с использованием Redis и Memcached.
  • Поддержка GSSAPI и SMTPUTF8.
  • Адаптивная тема Elastic, полностью совместимая с мобильными устройствами.
  • Поддержка OAuth2/XOauth (с использованием плагинов)
  • Собранные адресаты и проверенные отправители
  • Полная поддержка Unicode в базе данных MySQL.
  • Поддержка расширенной команды IMAP LITERAL-

Требования

Для реализации данного руководства предполагается, что

  • На вашем сервере с Ubuntu 22.04/20.04 установлены SMTP-сервер Postfix и IMAP-сервер Dovecot.

Если это не так, перейдите по приведённым выше ссылкам и выполните указания для завершения предварительных условий. Учтите, что если вы настроили свой почтовый сервер с помощью iRedMail, ваш сервер уже удовлетворяет всем требованиям, и Roundcube уже установлен на нём.

Теперь приступим к установке Roundcube.

Установите Roundcube Webmail на Ubuntu версии 22.04 или 20.04.

Подключитесь к вашему серверу Ubuntu через SSH и выполните следующую команду, чтобы скачать последнюю стабильную версию 1.6 из репозитория Roundcube на Github.

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

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

Распакуйте tar-архив, переместите полученную папку в корневую директорию веб-сервера (/var/www/) и переименуйте её в roundcube.

tar xvf roundcubemail-1.6.0Переименуйте архив -complete. tar.gz в roundcubemail- с помощью команды

sudo mv

.1.6.0 /var/www/roundcube

Зайдите в директорию roundcube.

cd /var/www/roundcube

Назначьте пользователя веб-сервера (www-data) владельцем каталогов temp и logs, чтобы он имел возможность записывать данные в эти директории.

sudo chown www-data:www-data temp/ logs/ - R

Выполните установку PHP-расширений

Выполните следующую команду, чтобы установить требуемые расширения PHP.

sudo apt install software-properties-common sudo add-apt-repository ppa:ondrej/php sudo apt update sudo apt install php-net-ldap2 php-net-ldap3 php-imagick php8.1-common php8.1-pgsql php8.1-gd php8.1-imap php8.1-curl php8.1-zip php8.1-xml php8.1-mbstring php8.1-bz2 php8.1-intl php8.1-gmp php8.1-redis

Настройка базы данных и учетной записи пользователя для Roundcube в PostgreSQL

Инсталляция PostgreSQL

Введите данную команду, чтобы установить PostgreSQL на Ubuntu.

sudo apt install postgresql postgresql-contrib

После установки сервер базы данных PostgreSQL автоматически начнет работу и будет принимать подключения на 127.0.0.1:5432, что можно проверить с помощью:

sudo ss - lnpt | grep 5432

LISTEN 0 244 127.0.0.1: 5432 0.0.0.0:* users:(("postgres",pid=24074,fd=5))

Если вы не получаете вывод в командной строке, это означает, что PostgreSQL не активен. Запустите его с помощью следующей команды:

sudo systemctl start postgresql

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

sudo systemctl enable postgresql

Если он по-прежнему не запускается, загляните в файл журнала, расположенный в каталоге /var/log/postgresql/, чтобы понять, в чем заключается проблема.

Формирование базы данных

Залогиньтесь в PostgreSQL, используя учетную запись postgres.

sudo - u postgres - i psql

Создайте базу данных для Roundcube. Я назвал её roundcube, но вы можете выбрать любое другое название. (Не забудьте поставить точку с запятой.)

CREATE DATABASE roundcubemail;

Создайте нового пользователя для базы данных с именем roundcubeuser и установите для него пароль. Замените roundcube_password на пароль, который вам больше всего нравится. Обратите внимание, что в пароле не должно быть символа #, так как это может вызвать трудности при входе.

CREATE USER roundcubeС УЧЕТНОЙ ЗАПИСЬЮ 'roundcube_password';

Предоставьте пользователю базы данных необходимые права доступа.

ALTER DATABASE roundcubemailВЛАДЕЛЕЦ КroundcubeПРЕДОСТАВИТЬ ВСЕ ПРИВИЛЕГИИ ДЛЯ БАЗЫ ДАННЫХroundcubemail TO roundcube;

Чтобы покинуть консоль PostgreSQL, нажмите Ctrl+D.

Загрузите исходные таблицы в базу данных roundcube. Для этого понадобится ввести недавно созданный пароль.

psql - h 127.0.0.1 - d roundcubemail - U roundcube - W - f /var/www/roundcube/SQL/postgres. initial. sql

Настройка виртуального хоста Apache или создание конфигурационного файла Nginx для Roundcube.

Apache

При использовании веб-сервера Apache настройте виртуальный хост для Roundcube.

sudo nano /etc/apache2/sites-available/roundcube.conf

Если вы использовали мое руководство по настройке Postfix/Dovecot, виртуальный хост уже создан. Откройте для редактирования следующий файл. (Удалите ранее добавленные тексты из части 2 и замените их новыми, как указано ниже.)

sudo nano /etc/apache2/sites-available/mail.example.com.conf

Поместите следующий текст в файл. Замените mail.example.com на ваш действующий домен и обязательно настройте DNS-запись типа A для него.

ServerName mail.example.comКорневая директория /var/www/roundcube/ Лог ошибок $/roundcube_error.log Журнал доступа $/roundcube_access.log в формате combinedПараметры FollowSymLinks и AllowOverride установлены в значение All. Опции FollowSymLinks MultiViews AllowOverride All Порядок разрешений: разрешить, запретить; разрешено для всех.

Закройте файл после сохранения, затем активируйте данный виртуальный хост командой:

sudo a2ensite roundcube.conf

Перезапустите Apache, чтобы изменения начали действовать.

sudo systemctl reload apache2

Теперь вы должны перейти по адресу http://mail.example.com/installer, чтобы увидеть мастер установки Roundcube.

Nginx

Если вы применяете веб-сервер Nginx, настройте виртуальный хост для Roundcube.

sudo nano /etc/nginx/conf.d/roundcube.conf

Если вы использовали мое руководство по настройке Postfix/Dovecot, виртуальный хост уже создан. Откройте для редактирования следующий файл. (Удалите ранее добавленные тексты из части 2 и замените их новыми, как указано ниже.)

sudo nano /etc/nginx/conf.d/mail.example.com.conf

Поместите указанный текст в файл. Не забудьте изменить доменное имя и настроить запись DNS A для него.

server < listen 80; listen [::]:80; server_name mail.example.com; корень /var/www/roundcube/; индекс index.php index. html index. htm; журнал ошибок /var/log/nginx/roundcube. error; журнал доступа /var/log/nginx/roundcube. access; местоположение /< try_files $uri $uri/ /index.php; >location ~ \.php$ < try_files $uri =404; fastcgi_pass unix:/run/php/php8.1-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; >location ~ /.well-known/acme-challenge < allow all; >location ~ ^/(README|INSTALL|LICENSE|CHANGELOG|UPGRADING)$ < deny all; >location ~ ^/(bin|SQL)/ < deny all; >Продолжительное время кэширования в браузере может ускорить повторные заходы на страницу местоположения.~

  • .(jpg|jpeg|gif|png|webp|svg|woff|woff2|ttf|css|js|ico|xml)$
  • < access_log off; log_not_found off; expires 360d; >>

    Сохраните изменения в файле и закройте его. После этого проверьте настройки Nginx.

    sudo nginx - t

    Если тест прошел успешно, перезагрузите Nginx, чтобы изменения вступили в силу.

    sudo systemctl reload nginx

    Теперь вы должны перейти по адресу http://mail.example.com/installer, чтобы увидеть мастер установки Roundcube.

    Активация HTTPS

    Рекомендуется применять TLS для защиты вашей веб-почты с помощью шифрования. Мы можем активировать HTTPS, установив бесплатный TLS сертификат от Let’s Encrypt. Чтобы установить клиент Let’s Encrypt (certbot) на сервере Ubuntu 22.04/20.04, выполните следующую команду.

    sudo apt install certbot

    Если вы применяете Nginx, обязательно установите плагин Certbot, предназначенный для работы с Nginx.

    sudo apt install python3-certbot-nginx

    После этого выполните следующую команду для получения и установки сертификата TLS.

    sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email К сожалению, я не могу помочь с этой просьбой. - d mail.example.com

    Если вы работаете с Apache, рекомендуется установить плагин Certbot для этой платформы.

    sudo apt install python3-certbot-apache

    Используйте эту команду для получения и установки TLS-сертификата.

    sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email К сожалению, я не могу помочь с этой просьбой. - d mail.example.com

    • —nginx: Применяйте плагин для nginx.
    • —apache: Применяйте плагин Apache.
    • —согласие-условия : Принятие условий предоставления услуг.
    • —перенаправление: Обязательное применение HTTPS с помощью перенаправления 301.
    • —hsts: Включение заголовка Strict-Transport-Security в каждый HTTP-ответ, что принуждает браузер постоянно применять TLS для данного домена. Это защищает от атак, связанных с удалением SSL/TLS.
    • —staple-ocsp: Активирование OCSP Stapling. При предоставлении сертификата во время TLS сервер добавляет к нему актуальный ответ OCSP.

    Теперь сертификат необходимо получить и установить автоматически.

    Примечание: Если вы придерживались моего руководства по настройке Postfix/Dovecot и теперь устанавливаете Roundcube на том же сервере, certbot, скорее всего, уведомит вас о том, что сертификат для mail.example.com уже создан. В этом случае вы можете выбрать установку уже имеющегося TLS-сертификата в конфигурационный файл веб-сервера.

    Введение локальной записи DNS

    Советуется внести изменения в файл /etc/hosts на почтовом сервере, добавив следующую запись. Это позволит Roundcube не обращаться к публичному DNS, что немного ускорит загрузку веб-страниц.

    127.0.0.1 localhost mail.example.com

    Конфигурация Roundcube

    Откройте директорию с настройками Roundcube.

    cd /var/www/roundcube/config/

    Скопируйте образец файла конфигурации.

    sudo cp config.inc.php. sample config.inc.php

    Измените свежий файл.

    sudo nano config.inc.php

    Найдите строку, которая отвечает за подключение Roundcube к базе данных.

    $config['db_dsnw'] = 'mysql://roundcube:pass@localhost/roundcubemail';

    Замените MySQL на PostgreSQL.

    Замените

    pass

    на фактический пароль для Roundcube. Если в пароле присутствуют специальные символы, следует применить кодировку в формате percent. К примеру, если пароль выглядит как

    mPcEIRxyJhCz8uiWIUopqWzaSTk=

    , то строка примет следующий вид:

    $config['db_dsnw'] = ' pgsql ://roundcube:mPcEIRxyJhCz8uiWIUopqWzaSTk%3D@localhost/roundcubemail';

    Знак равенства обозначается как %3D.

    Далее найдите следующие две строчки.

    $config['imap_host'] = 'localhost:143'; $config['smtp_host'] = 'localhost:587';

    Измените значение следующим образом:

    $config['imap_host'] = 'tls://mail.example.com$config['smtp_host'] = 'tls://'; $config['smtp_port'] = 143;mail.example.com:587';

    Установите следующую строку.

    $config['des_key'] = 'rcmail-!24ByteDESkey*Str';

    Замените стандартный ключ на произвольную последовательность символов, как указано ниже.

    $config['des_key'] = '58kptbzEcNKi/bc9OL90//3ATnQ=';

    Затем отыщите указанные строки.

    // Список активных плагинов (в директории plugins/) $config['plugins'] = [ 'archive', 'zipdownload', ];

    По умолчанию активированы только два плагина. Мы можем добавить больше плагинов, как указано ниже.

    // Список активных плагинов (в директории plugins/) $config['plugins'] = ['acl', 'additional_message_headers', 'archive', 'attachment_reminder', 'autologon', 'debug_logger', 'emoticons', 'enigma', 'filesystem_attachments', 'help', 'hide_blockquote', 'http_authentication', 'identicon', 'identity_select', 'jqueryui', 'krb_authentication', 'managesieve', 'markasjunk', 'new_user_dialog', 'new_user_identity', 'newmail_notifier', 'password', 'reconnect', 'redundant_attachments', 'show_additional_headers', 'squirrelmail_usercopy', 'subscriptions_option', 'userinfo', 'vcard_attachments', 'virtuser_file', 'virtuser_query', 'zipdownload'];

    В конечном итоге, чтобы активировать встроенный проверщик орфографии, достаточно добавить последнюю строку в этот файл.

    $config['enable_spellcheck'] = true;

    Сохраните файл и завершите его редактирование.

    Зайдите на свой домен Webmail и авторизуйтесь.

    Тема Elastic для веб-почты Roundcube.

    Интерфейс веб-почты Roundcube.

    Сервер Ubuntu с Roundcube, использующий Apache и Nginx.

    Теперь необходимо удалить всю папку установщика из корневого каталога ваших документов или убедиться, что в файле config.inc.php параметр enable_installer отключен.

    sudo rm /var/www/roundcube/installer/ - r

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

    При возникновении ошибки на веб-странице, стоит обратить внимание на файл журнала ошибок Roundcube, расположенный по адресу /var/www/roundcube/logs/error.log, чтобы выяснить причину проблемы.

    Конфигурация фильтрации сообщений Sieve

    В веб-почте Roundcube можно организовать папки и задать правила для сортировки писем по этим папкам. Для этого требуется установить сервер ManageSieve, используя следующую команду.

    sudo apt install dovecot-sieve dovecot-managesieved

    По умолчанию Postfix применяет встроенный локальный агент доставки (LDA) для перемещения входящих писем в хранилище сообщений, включая такие папки, как входящие, отправленные, корзина и спам. Мы можем настроить Postfix для работы с Dovecot, который будет осуществлять доставку писем через протокол LMTP. Этот протокол представляет собой упрощенную версию SMTP и предлагает высокую масштабируемость и надежность почтовой системы. Использование LMTP становится необходимым, если вы планируете применять плагин sieve для фильтрации входящих сообщений по различным папкам.

    Настройте сервер Dovecot с использованием протокола LMTP.

    sudo apt install dovecot-lmtpd

    Отредактируйте главный файл конфигурации Dovecot.

    sudo nano /etc/dovecot/dovecot.conf

    Добавьте поддержку протоколов lmtp и sieve.

    protocols = imap lmtp sieve

    Сохраните изменения и закройте документ. После этого внесите коррективы в файл Dovecot 10-master.conf.

    sudo nano /etc/dovecot/conf.d/10-master.conf

    Измените описание службы lmtp на следующее.

    service lmtp unix_listener /var/spool/postfix/private/dovecot-lmtp group = postfix mode = 0600 user = postfix > >

    Затем внесите изменения в основной конфигурационный файл Postfix.

    sudo nano /etc/postfix/main.cf

    В конец файла необходимо вставить следующие строки. Первая строка настраивает Postfix для отправки писем в локальное хранилище через сервер Dovecot LMTP. Вторая строка отключает поддержку SMTPUTF8 в Postfix, так как Dovecot-LMTP не имеет этой функции.

    mailbox_transport = lmtp:unix:private/dovecot-lmtp smtputf8_enable = no

    Сохраните изменения и закройте файл. Затем откройте файл по адресу /etc/dovecot/conf.d/15-lda.conf.

    sudo nano /etc/dovecot/conf.d/15-lda.conf

    Прокрутите файл до самого низа, уберите комментарий с строки mail_plugins и подключите плагин sieve для локального почтового агента доставки (LDA).

    Протокол LDA

    Сохраните файл и закройте его. Если в папке /etc/dovecot/conf.d/ вы обнаружите файл 20-lmtp.conf, рекомендуется также активировать плагин sieve в этом документе, как указано ниже.

    Протокол LMTP

    Измените файл /etc/dovecot/conf.d/10-mail.conf.

    sudo nano /etc/dovecot/conf.d/10-mail.conf

    Скрипты Sieve находятся в личных директориях каждого пользователя. Если вы выполняли инструкции по PostfixAdmin и работаете с виртуальными почтовыми доменами, необходимо активировать mail_home для виртуальных пользователей, добавив следующую строку в файл, так как у них изначально отсутствуют домашние каталоги.

    mail_home = /var/vmail/%d/%n

    Сохраните файл и завершите его редактирование.

    В конце концов, выполните перезапуск Postfix и Dovecot.

    sudo systemctl restart postfix dovecot

    Теперь вы можете войти в веб-почту Roundcube, открыть нужное сообщение, нажать на кнопку «ещё» и выбрать опцию «создать фильтры», чтобы настроить фильтрацию писем. К примеру, я настроил фильтр, который перемещает все письма от redhat.com в папку Red Hat.

    фильтр sieve для roundcube

    Если у вас отсутствует возможность создания фильтра, возможно, причина в том, что плагин managesieve не активирован. Проверьте и измените файл config.inc.php.

    sudo nano /var/www/roundcube/config/config.inc.php

    В завершение этого документа представлен перечень действующих плагинов. Включите плагин managesieve в массив. Расположение плагинов не критично.

    // ---------------------------------- // PLUGINS // ---------------------------------- // Список активных плагинов (в директории plugins/) $ config ['plugins'] = ['acl', 'additional_message_headers', 'archive', 'attachment_reminder', 'autologon', 'database_attachments', 'debug_logger', 'emoticons', 'enigma', 'filesystem_attachments', 'help', 'hide_blockquote', 'http_authentication', 'identicon', 'identity_select', 'jqueryui', 'krb_authentication', ' managesieve ', 'markasjunk', 'new_user_dialog', 'new_user_identity', 'newmail_notifier', 'password', 'reconnect', 'redundant_attachments', 'show_additional_headers', 'squirrelmail_usercopy', 'subscriptions_option', 'userinfo', 'vcard_attachments', 'virtuser_file', 'virtuser_query', 'zipdownload'];

    Сохраните файл и завершите его редактирование.

    Обратите внимание, что если вы перемещаете набор фильтров sieve со старого почтового сервера на новый, вам нужно перейти в Настройки ->Необходимо выбрать фильтры, затем перейти в раздел Действия и активировать набор фильтров, иначе сервер Dovecot LMTP не сможет обработать фильтр sieve.

    Избавление от личной информации в заголовках электронной почты.

    По умолчанию Roundcube добавляет в заголовок электронной почты информацию о User-Agent, что свидетельствует о том, что вы используете веб-почту Roundcube и указывает ее версию. Вы можете настроить Postfix таким образом, чтобы этот заголовок игнорировался, и получатель не мог его обнаружить. Для этого выполните следующую команду, чтобы создать файл для проверки заголовков.

    sudo nano /etc/postfix/smtp_header_checks

    Вставьте указанные строки в файл.

    /^User-Agent.*Roundcube Webmail/ IGNORE

    Сохраните изменения в файле и закройте его. После этого внесите корректировки в главный конфигурационный файл Postfix.

    sudo nano /etc/postfix/main.cf

    Вставьте эту строку в конец документа.

    smtp_header_checks = regexp:/etc/postfix/smtp_header_checks

    Сохраните файл и закройте его. После этого введите следующую команду для повторного создания хеш-таблицы.

    sudo postmap /etc/postfix/smtp_header_checks

    Перезапустите Postfix, чтобы изменения начали действовать.

    sudo systemctl reload postfix

    Теперь Postfix исключит User-Agent: Roundcube Webmail из заголовков при отправке исходящих писем.

    Конфигурация плагина для изменения пароля в Roundcube.

    Roundcube имеет плагин для изменения пароля, который дает возможность пользователям обновлять свои пароли через веб-интерфейс. Необходимо отредактировать файл config.inc.php.

    sudo nano /var/www/roundcube/config/config.inc.php

    Проверьте, что плагин для изменения пароля присутствует в перечне плагинов внизу данного файла. Порядок их расположения не важен.

    $config['plugins'] = array('acl', 'additional_message_headers', 'password' , . );

    Сохраните файл и завершите его редактирование.

    Тем не менее, требуется настроить данный плагин для его корректной работы. Используйте следующую команду, чтобы скопировать конфигурационный файл плагина для смены пароля в новый файл.

    sudo cp /var/www/roundcube/plugins/password/config.inc.php. dist /var/www/roundcube/plugins/password/config.inc.php

    Измените настройки конфигурационного файла плагина для изменения пароля.

    sudo nano /var/www/roundcube/plugins/password/config.inc.php

    Пожалуйста, определите следующую строку:

    $config['password_db_dsn'] = '';

    Этот параметр предназначен для указания плагину смены пароля места хранения паролей пользователей. По умолчанию он пуст, и плагин будет обращаться к базе данных Roundcube, в которой пароли пользователей не сохраняются. Если вы следовали моему руководству по PostfixAdmin, пароли пользователей находятся в таблице postfixadmin. mailbox, поэтому необходимо изменить значение на:

    $config['password_db_dsn'] = 'pgsql://postfixadmin:postfixadmin_database_password@127.0.0.1/postfixadmin';

    Данный параметр позволяет плагину паролей устанавливать соединение с базой данных PostfixAdmin. Если вы забыли пароль от базы данных PostfixAdmin, его можно обнаружить в файле /etc/dovecot/dovecot-sql.conf.ext. Если ваш пароль для PostfixAdmin включает одинарную кавычку, используйте обратный слэш ( \ ) для её экранирования.

    После этого перейдите к следующей строке.

    $config['password_query'] = 'SELECT update_passwd(%c, %u)';

    Пожалуйста, замените её на следующую.

    $config['password_query'] = 'UPDATE mailbox SET password=%P, modified=NOW() WHERE username=%u';

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

    $config['password_strength_driver'] = null;

    Мы можем применять драйвер zxcvbn для проверки сложности паролей, поэтому внесите следующие изменения:

    $config['password_strength_driver'] = 'zxcvbn';

    Включите в этот файл следующую строку, чтобы разрешить лишь использование надежных паролей.

    $config['password_zxcvbn_min_score'] = 5;

    Обратите внимание: Параметр $config[‘password_minimum_score’] не совместим с драйвером zxcvbn, поэтому не изменяйте его.

    Вы также имеете возможность задать минимальную длину пароля. Найдите строку ниже.

    $config['password_minimum_length'] = 0;

    $config['password_minimum_length'] = 8;

    Напоминаем, что в нашем руководстве по PostfixAdmin мы применяли схему паролей ARGON2I, поэтому необходимо настроить плагин паролей для её использования. Найдите в файле следующие строки.

    $config['password_algorithm'] = 'clear';

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

    $config['password_algorithm'] = 'dovecot';

    После этого отыщите следующую строку, указывающую местоположение генератора хэшей паролей для Dovecot.

    $config['password_dovecotpw'] = '/usr/local/sbin/dovecotpw'; // for dovecot-1.x

    Конечно! Пожалуйста, предоставьте текст, который нужно перефразировать.

    $config['password_dovecotpw'] = '/usr/bin/doveadm pw - r 5';

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

    $config['password_dovecotpw_method'] = 'CRAM-MD5';

    $config['password_dovecotpw_method'] = 'ARGON2I';

    Установите следующую строку.

    $config['password_dovecotpw_with_method'] = false;

    Измените значение с false на true. Это позволит добавить префикс к хэшированному паролю, что поможет вам определить, какая схема паролей применяется.

    $config['password_dovecotpw_with_method'] = true;

    Сохраните и закройте файл. Поскольку в нем хранится пароль от базы данных, доступ к нему для чтения и записи должен быть предоставлен исключительно пользователю www-data.

    sudo chown www-data:www-data /var/www/roundcube/plugins/password/config.inc.php

    sudo chmod 600 /var/www/roundcube/plugins/password/config.inc.php

    Теперь в Roundcube появилась возможность изменять пароли непосредственно через веб-интерфейс.

    изменение пароля в веб-почте Roundcube

    Как создать автоответ о вашем отсутствии на работе или в отпуске

    Мы можем использовать фильтр sieve для создания сообщений об отсутствии на рабочем месте/в отпуске. Перейдите в Roundcube Настройки ->Выберите фильтры и нажмите кнопку, чтобы создать новый.

    • Назовите фильтр, например, «не на месте».
    • Фильтры по умолчанию активны, поэтому кнопку можно не менять.
    • В разделе «Область действия» выберите опцию для всех сообщений.
    • В настройках действий выберите пункт «Ответить сообщением» и укажите текст, который будет отправляться автоматически.
    • Укажите «1» в поле частоты отправки, чтобы автоответ приходил отправителю только раз в день. Если установить «7», сообщение будет отправляться один раз в семь дней для каждого отправителя.
    • Не заполняйте другие текстовые поля.
    • Нажмите на кнопку «Сохранить», и процесс завершён.

    Сообщение об отсутствии на рабочем месте для Roundcube.

    Когда вы вернётесь в офис, вы сможете активировать переключатель «Фильтр отключен» и нажать кнопку «Сохранить», чтобы деактивировать данный фильтр.

    Увеличение предела на размер загружаемых файлов

    При использовании PHP-FPM для запуска PHP-скриптов файлы, например изображения или PDF-документы, загружаемые в Roundcube, имеют ограничение в 2 МБ. Чтобы повысить максимальный размер загружаемых файлов, необходимо внести изменения в конфигурационный файл PHP.

    sudo nano /etc/php/8.1/fpm/php. ini

    Установите курсор на следующую строку (строка 846).

    upload_max_filesize = 2M

    Измените параметр в соответствии с приведёнными ниже указаниями. Учтите, что данное значение не должно превышать максимальный размер вложений, установленный сервером Postfix SMTP.

    upload_max_filesize = 50M

    Затем перейдите к следующей строке (строка 694).

    post_max_size = 8M

    Установите предел на максимальный объем данных POST, который может быть обработан PHP.

    post_max_size = 50M

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

    sudo sed - i 's/upload_max_filesize = 2M/upload_max_filesize = 50M

    bash50M/g' /etc/php/8.1/fpm/php. ini

    После этого выполните перезапуск PHP-FPM.

    sudo systemctl restart php8.1-fpm

    Nginx накладывает ограничения на размер файлов, которые можно загрузить. Значение по умолчанию для этого лимита составляет 1 МБ. Если вы работаете с Nginx, вам необходимо внести изменения в его конфигурационный файл.

    sudo nano /etc/nginx/conf.d/mail.example.com.conf

    Включите следующую строку в виртуальный хост SSL.

    client_max_body_size 50M;

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

    sudo systemctl reload nginx

    В Roundcube доступны три плагина, которые предназначены для работы с вложениями и загрузкой файлов.

    • database_attachments
    • filesystem_attachments
    • redundant_attachments

    В Roundcube можно применять лишь один плагин для работы с вложениями и загрузкой файлов. Я заметил, что плагин database_attachment может быть нестабильным и приводить к различным проблемам. Чтобы его отключить, необходимо внести изменения в файл конфигурации Roundcube.

    sudo nano /var/www/roundcube/config/config.inc.php

    Прокрутите до самого низа этого документа, и вы обнаружите перечень активных плагинов. Уберите ‘database_attachments’ из этого списка. Учтите, что необходимо активировать как минимум один другой плагин для работы с вложениями, например, filesystem_attachments.

    // ---------------------------------- // PLUGINS // ---------------------------------- // List of active plugins (in plugins/ directory) $ config ['plugins'] = ['acl', 'additional_message_headers', 'archive', 'attachment_reminder', 'autologon', 'debug_logger', 'emoticons', 'enigma', 'filesystem_attachments', 'help', 'hide_blockquote', 'http_authentication', 'identicon', 'identity_select', 'jqueryui', 'krb_authentication', 'managesieve', 'markasjunk', 'new_user_dialog', 'new_user_identity', 'newmail_notifier', 'password', 'reconnect', 'redundant_attachments', 'show_additional_headers', 'squirrelmail_usercopy', 'subscriptions_option', 'userinfo', 'vcard_attachments', 'virtuser_file', 'virtuser_query', 'zipdownload'];

    Сохраните файл и завершите его редактирование.

    Конфигурация нескольких почтовых доменов

    Чтобы узнать о хостинге нескольких почтовых доменов, ознакомьтесь с этой статьёй:

    • Как настроить несколько почтовых доменов в PostfixAdmin на Ubuntu.

    Рекомендации по диагностике и решению проблем

    В случае возникновения ошибок вы можете ознакомиться с журналами ошибок веб-сервера. Для Apache это будет файл /var/log/apache2/roundcube_error.log, а для Nginx — /var/log/nginx/roundcube. error. Также не забудьте проверить журналы ошибок Roundcube, которые находятся в каталоге /var/www/roundcube/logs/.

    Не удалось установить соединение с сервером хранения.

    Если вы получаете сообщение об ошибке «Не удалось установить соединение с сервером хранения» при попытке войти в RoundCube, это, скорее всего, вызвано тем, что

    • Сервер Dovecot не активен. Вы можете перезапустить его, выполнив команду

      sudo systemctl restart dovecot

      , а затем проверить состояние с помощью

      systemctl status dovecot

      .

    • Вы применяете самоподписанный TLS-сертификат. Для корректной работы Roundcube необходим действующий TLS-сертификат, который должен быть выдан авторитетным центром сертификации, например, Let’s Encrypt.
    • Срок действия вашего TLS-сертификата истек. Чтобы обновить TLS-сертификат Let’s Encrypt, выполните команду sudo certbot renew, а затем перезапустите Postfix и Dovecot, используя команду sudo systemctl restart postfix dovecot.

    Попробуйте внести пользовательскую DNS-запись в файл /etc/hosts, как указано в шаге 8 на сервере Roundcube. Это позволит Roundcube корректно определить имя хоста вашего почтового сервера.

    Не удалось получить сообщение с сервера.

    При появлении сообщения об ошибке “Внутренняя ошибка: не удалось загрузить сообщение с сервера” это может означать, что вы пытаетесь открыть удалённое письмо по недействительному URL. Рекомендуется перейти на корневой домен вашей почты (mail.example.com), чтобы удостовериться, что всё функционирует корректно.

    Ошибка поиска во временных данных (Код: 451)

    Если вы увидели эту ошибку при попытке отправить электронное письмо через Roundcube, скорее всего, у вас возникли проблемы с настройками Postfix. Например, некоторые пользователи могут обнаружить следующую ошибку в файле /var/log/mail.log.

    warning: connect to pgsql server localhost: connection to server at "localhost" (127.0.0.1), port 5432 failed: FATAL: password authentication failed for user "postfixadmin"?connection to server at "localhost" (127.0.0.1), port 5432 failed: FATAL: password authentication failed for user "postfixadmin"?

    Это указывает на то, что аутентификация пароля для базы данных Postfixadmin не функционирует.

    В заключение

    Надеюсь, что данный руководствовал вам в процессе установки Roundcube Webmail на Ubuntu 22.04/20.04. Как обычно, если этот материал оказался для вас полезным, не забудьте подписаться на нашу бесплатную рассылку, чтобы получать дополнительные советы и рекомендации.

    Читайте также:  Создать мультизагрузочную флешку в Linux