Установка Roundcube Webmail на Ubuntu 22.04 и 20.04 с использованием Apache или Nginx

Roundcube представляет собой бесплатный и открытый веб-клиент для работы с электронной почтой, разработанный на языке PHP и обладающий полным функционалом. Это веб-клиент позволяет управлять почтой непосредственно в браузере, что дает возможность отправлять и получать письма без необходимости использования настольных почтовых клиентов, таких как Mozilla Thunderbird. В данном руководстве описывается процесс установки Roundcube webmail на операционных системах Ubuntu 22.04 и 20.04 с использованием веб-серверов Apache или Nginx.

Ключевые характеристики Roundcube

Функциональные возможности Roundcube охватывают следующие аспекты:

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

Требования

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

  • На вашем сервере под управлением Ubuntu 22.04/20.04 были установлены серверы Postfix для SMTP и Dovecot для IMAP.
  • Стек LAMP или LEMP уже установлен на сервере с Ubuntu 22.04/20.04.

Если это не так, пожалуйста, воспользуйтесь ссылками, указанными выше, и следуйте инструкциям для выполнения предварительных требований. Имейте в виду, что если вы ранее настраивали свой почтовый сервер с помощью 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.

Извлеките содержимое архива и переместите созданную папку в корневую директорию веб-сервера (/var/www/), при этом изменив ее название на roundcube.

tar xvf roundcubemail-1.6.0sudo mkdir - p /var/www/ && sudo mv roundcubemail-complete. tar.gz /var/www/1.6.0 /var/www/roundcube

Откройте папку roundcube.

cd /var/www/roundcube

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

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

Инсталляция расширений PHP

Для установки требуемых расширений PHP выполните следующую команду. Поддержка PHP8.1 осуществляется в версии 1.6.

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-gd php8.1-imap php8.1-mysql php8.1-curl php8.1-zip php8.1-xml php8.1-mbstring php8.1-bz2 php8.1-intl php8.1-gmp php8.1-redis

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

Зайдите в среду выполнения MariaDB под учетной записью root.

sudo mysql - u root

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

CREATE DATABASE roundcubemail DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

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

CREATE USER roundcube@localhost Установлен пароль 'roundcube_password';

После этого следует предоставить все необходимые разрешения новой базе данных новому пользователю, чтобы Roundcube webmail мог впоследствии записывать данные в базу.

GRANT ALL PRIVILEGES ON roundcubemailКонечно, предоставь текст, который нужно перефразировать, и я помогу сделать его уникальным.roundcube@localhost;

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

flush privileges;

Покиньте окружение MariaDB.

exit;

Загрузите стартовые таблицы в базу данных Roundcube.

sudo mysql roundcube < /var/www/roundcube/SQL/mysql. initial. sql

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

Apache

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

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

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

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

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

ServerName mail.example.comDocumentRoot /var/www/roundcube/
ErrorLog $/roundcube_error.log
CustomLog $/roundcube_access.log combinedOptions 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, то виртуальный хост уже настроен. Вам нужно внести изменения в следующий файл. (Удалите текущее содержимое.)

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

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

server < listen 80; listen [::]:80; server_name mail.example.comroot /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, предназначенный для этой системы.

    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 Stripping.
    • --staple-ocsp: Активирует OCSP Stapling. Ответ OCSP, подтверждающий действительность, добавляется к сертификату, который сервер предоставляет во время TLS.

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

    Обратите внимание: если вы воспользовались моим руководством по настройке 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';

    Необходимо заменить "pass" на действительный пароль Roundcube. Если пароль включает специальные символы, требуется применить процентное кодирование. Например, для пароля mPcEIRxyJhCz8uiWIUopqWzaSTk= строка будет следующей:

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

    Специальный символ = обозначается как %3D.

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

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

    Пожалуйста, измените значение следующим образом:

    $config['imap_host'] = 'tls://mail.example.comКод: 143'; $config['smtp_host'] = 'tls://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 Webmail

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

    Установка Roundcube на сервере Ubuntu с использованием Apache и Nginx.

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

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

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

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

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

    sudo apt install dovecot-sieve dovecot-managesieved

    По умолчанию Postfix применяет встроенный агент локальной доставки (LDA) для перемещения входящих писем в почтовое хранилище (входящие, отправленные, корзина, спам и т. д.). Мы можем настроить систему так, чтобы вместо этого использовался 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 webmail, открыть нужное сообщение, нажать на кнопку "Дополнительно" и выбрать "Создать фильтры" для настройки фильтров. Например, я создаю фильтр, который перемещает все письма, пришедшие с redhat.com, в папку Red Hat.

    фильтр Sieve для Roundcube

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

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

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

    // ---------------------------------- // ПЛАГИНЫ // ---------------------------------- // Список активных плагинов (в директории 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'] = 'mysql://postfixadmin:пароль_базы_данных_postfixadmin@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, поэтому необходимо настроить плагин для паролей с использованием ARGON2I. Найдите указанные строки в файле.

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

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

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

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

    $config['password_dovecotpw'] = '/usr/local/sbin/dovecotpw'; // для 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 Webmail

    Как установить уведомления о выходных и отпуске.

    Мы можем использовать фильтр 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

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

    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 = 50MbashCopy codesudo sed - i 's/post_max_size = 8M/post_max_size = <новое_значение>' /etc/php/8.1/fpm/php. ini
    50M/g' /etc/php/8.1/fpm/php. ini

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

    sudo systemctl restart php8.1-fpm

    Nginx накладывает ограничение на размер файлов, которые можно загружать. По умолчанию максимальный размер загружаемого файла в 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/) $ 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 сертификат просрочен. Для его обновления воспользуйтесь командой sudo certbot renew, а затем перезапустите Postfix и Dovecot с помощью команды sudo systemctl restart postfix dovecot.

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

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

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

    Фильтр сообщений Sieve не функционирует?

    Если вы внимательно выполнили шаг 8 по настройке фильтра sieve, но он всё равно не функционирует, вы можете активировать режим отладки в Dovecot, чтобы определить причину неисправности.

    sudo nano /etc/dovecot/dovecot.conf

    Вставьте следующую строку в конец данного файла для активации режима отладки в Dovecot.

    mail_debug=yes

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

    sudo systemctl restart dovecot

    После этого отправьте пробное письмо на адрес электронной почты вашего домена и проверьте файл журнала почты.

    sudo nano /var/log/mail.log

    Отладочную информацию для фильтра сообщений Sieve можно найти. Например, я выяснил, что Dovecot не смог выполнить мой Sieve-скрипт.

    Jan 10 11:35:24 mail dovecot: lmtp([email protected]) Debug: sieve: Aborted running script `/var/vmail/linux16.ru/xiao/.dovecot. svbin'

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

    Ошибка временного поиска (Код: 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

    Обновление до Roundcube 1.5.3 после его выпуска — это довольно легко. Вот пример того, как это сделать.

    Сохраните актуальную версию Roundcube в своей личной папке.

    cd ~скачать с помощью wget https://github.com/roundcube/roundcubemail/releases/download/1.5.3/roundcubemail-1.5.3-complete. tar.gz

    Извлеките содержимое архива.

    tar xvf roundcubemail-1.5.3-complete. tar.gz

    Измените владельца на www-data.

    sudo chown www-data:www-data roundcubemail-1.5.3/ - R

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

    sudo roundcubemail-1.5.3/bin/installto. sh /var/www/roundcube/

    По завершении процесса зайдите в Roundcube и кликните на кнопку "О программе", чтобы узнать, какая версия Roundcube у вас установлена.

    Заключение

    Читайте также:  Полное руководство по установке и настройке XenServer 7