Установка почтового клиента Roundcube Webmail на Debian 11/10 с использованием Apache или Nginx

Roundcube — это бесплатный почтовый веб-клиент с открытым исходным кодом, написанный на PHP. С его помощью можно управлять электронной почтой прямо через браузер, минуя программы вроде Mozilla Thunderbird. В этом руководстве описан процесс установки Roundcube на Debian 11/10 с использованием веб-серверов Apache или Nginx.

Функциональные возможности Roundcube

Ключевые возможности Roundcube включают в себя:

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

Требования

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

  • На вашем сервере с операционной системой Debian 10 или 11 настроены почтовые серверы Postfix для SMTP и Dovecot для IMAP.

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

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

Установка Roundcube Webmail на Debian 11/10

Подключитесь к вашему серверу Debian с помощью SSH, а затем введите следующую команду для скачивания последней стабильной версии из репозитория 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) в качестве владельца папок 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-fpm 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, используя следующую команду. В данном руководстве база данных называется roundcube, но вы можете выбрать любое другое название.

CREATE DATABASE roundcubemail DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

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

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

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

GRANT ALL PRIVILEGES ON roundcubemailroundcube@localhost;

Внесите коррективы в таблицу прав доступа.

flush privileges;

Выйдите из MariaDB.

exit;

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

sudo mysql roundcubemail < /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.comДокументный корень: /var/www/roundcube/ Лог ошибок: $/roundcube_error.log Пользовательский лог: $/roundcube_access.log в объединённом формате.Опции FollowSymLinks и AllowOverride установлены в значение All. Параметры FollowSymLinks MultiViews РазрешитьOverride Все Установить порядок разрешений allow, deny разрешить всем

Сохраните файл и закройте его. После этого активируйте данный виртуальный хост с помощью:

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

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

server < listen 80; listen [::]:80; server_name mail.example.comroot /var/www/roundcube/; index index.php index. html index. htm; error_log /var/log/nginx/roundcube. error; access_log /var/log/nginx/roundcube. access; location /< 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)$
Читайте также:  Установка SMPlayer на дистрибутивах Ubuntu, OpenSUSE, Arch Linux и Fedora

< access_log off; log_not_found off; expires 360d; >>

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

sudo nginx - t

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

sudo systemctl reload nginx

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

Активирование HTTPS

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

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. В процессе 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

Определите последующий ряд, к

$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

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

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

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

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

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

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

sudo apt install dovecot-sieve dovecot-managesieved

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

Настройте сервер LMTP на базе Dovecot.

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

Читайте также:  Как установить Tomcat 9 на Fedora 34/33 и CentOS/RHEL 7

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/) $ 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'];

Сохраните изменения и завершите работу с файлом.

Обратите внимание, что если вы переносите набор фильтров 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_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=%D, 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;

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

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

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

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

Сообщение об отсутствии на работе в Roundcube.

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

Повышение предела для загружаемых файлов.

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

sudo nano /etc/php/8.0/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Для изменения конфигурации файла php. ini выполните команду:bashCopy codesudo sed - i 's/post_max_size = 8M/post_max_size = <новое значение>' /etc/php/8.0/fpm/php. ini
Замените <новое значение> на нужный вам размер.50M/g' /etc/php/8.0/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

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

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

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

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

  • Сервер Dovecot не активен. Чтобы перезапустить 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.

Попробуйте внести изменения в файл /etc/hosts, добавив пользовательскую запись DNS, как указано в шаге 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.6.1 после его выхода.

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

cd ~Загрузите файл с помощью команды wget, используя следующий адрес: https://github.com/roundcube/roundcubemail/releases/download/1.6.1/roundcubemail-1.6.1-complete. tar.gz

Разархивируйте файл.

tar xvf roundcubemail-1.6.1-complete. tar.gz

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

chown www-data:www-data roundcubemail-1.6.1/ - R

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

roundcubemail-1.6.1/bin/installto. sh /var/www/roundcube/

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