Небольшая заметка на тему настройки своего почтового сервера с веб интерфейсом roundcube. У него есть плагин, который позволяет пользователю самостоятельно менять свой почтовый пароль. Проблема в том, что по умолчанию он не заработает, обязательно нужна настройка. При этом она будет сильно зависеть от конкретной ситуации. Я опишу пару таких типовых настроек.
Хочешь научиться строить и поддерживать высоконагруженные приложения? Тогда рекомендую познакомиться с онлайн-интенсивом «Tarantool» в OTUS. Актуально для системных администраторов и devops инженеров. Подробности по .
Итак, речь идет о почтовом сервере, настроенном примерно так же, как в моей статье — Настройка postfix + dovecot + mysql база + postfixadmin + roundcube + dkim на CentOS 8. У нас установлен roundcube и активирован плагин password. В конфигурационном файле roundcube это выглядит следующим образом:
$config['plugins'] = array('acl', 'managesieve', 'password', 'userinfo');
В веб интерфейсе функционал по смене пароля реализован вот так.
Если вы просто активируете плагин и не настроите, пользователь будет получать ошибку при попытке изменить пароль. Это и понятно, ведь у roundcube своя база данных и никакого подключения к базе с учетными записями почты у нее по умолчанию нет. Вот это и надо настроить. Для этого идем в директорию плагина — /plugins/password и создаем конфигурационный файл, который будем настраивать.
# cp config.inc.php.dist config.inc.php
Открываем конфиг и добавляем туда следующие параметры.
$config['password_algorithm'] = 'md5-crypt'; $config['password_db_dsn'] = 'mysql://dbuser:dbpassword@localhost/postfix'; $config['password_query'] = 'UPDATE postfix.mailbox SET password = %P, modified = NOW() WHERE username = %u';
md5-crypt | метод шифрования паролей в базе mysql |
dbuser | пользователь базы данных, где хранятся учетки |
dbpassword | пароль пользователя |
postfix | база данных mysql |
Если у вас пароли в базе не зашифрованы, то настройки будут выглядеть вот так:
$config['password_algorithm'] = 'clear'; $config['password_db_dsn'] = 'mysql://dbuser:dbpassword@localhost/postfix'; $config['password_query'] = 'UPDATE postfix.mailbox SET password = %p, modified = NOW() WHERE username = %u';
Сохраняйте конфигурационный файл и пробуйте изменять пароль через web интерфейс. Теперь изменение почтового пароля должно корректно работать.
Супер-интенсив «Tarantool»
Если у вас есть желание освоить платформу in-memory вычислений, востребованную в современных высоконагруженных приложениях, рекомендую пройти интенсив Tarantool в OTUS. Обучение длится 5 дней.
Что даст вам этот интенсив:
- Узнаете архитектуру и внутреннее устройство Tarantool.
- Поймете сильные и слабые стороны Tarantool.
- Сможете назвать сходства и отличия от других СУБД.
- Увидите кейсы использования: куда брать, куда не брать.
- Установите и запустите Tarantool.
- Поднимете собственный кластер.
Смотрите подробнее программу по .