RainLoop — веб-почтовый клиент (webmail) для самостоятельной установки на сервер. Работает как IMAP-клиент в браузере: сервер RainLoop подключается к почтовому серверу (Dovecot, Exchange) по IMAP и отображает письма через веб-интерфейс. Написан на PHP, в базовой конфигурации не требует базы данных — настройки хранятся в файловой системе. Для новых проектов в 2024 году рекомендуется форк SnappyMail — он активно развивается и поддерживает PHP 8.x.
Как работает RainLoop
RainLoop — тонкий прокси-клиент. PHP-сервер не хранит письма и не кэширует почтовые ящики: при каждом запросе он устанавливает IMAP-соединение с почтовым сервером и транслирует данные в браузер через JSON API. Браузерная часть написана на JavaScript (AngularJS) и отображает интерфейс без перезагрузки страниц. Такой подход означает низкое потребление дискового пространства, но зависимость скорости поиска от производительности IMAP-сервера.
Установка занимает 5 минут: распаковать архив в директорию веб-сервера, настроить Nginx или Apache, открыть браузер. Для хранения данных (контакты, настройки 2FA, фильтры) опционально подключается MySQL или SQLite. Панель администратора: /?admin.
Возможности
- Несколько IMAP-аккаунтов одновременно в одном интерфейсе
- Поиск по IMAP через IMAP SEARCH (без локального индекса — скорость зависит от сервера)
- PGP-шифрование через браузерное расширение Mailvelope
- Фильтры Sieve для серверной сортировки писем (требуется ManageSieve на Dovecot)
- Многодоменный режим (для хостинга с несколькими почтовыми доменами)
- Плагины: 2FA (TOTP), CardDAV/CalDAV-синхронизация контактов, кастомный CSS-скин
История
RainLoop разработан Майклом Аскотом (Michael Aszott) около 2012 года как легковесная альтернатива Roundcube. Community Edition распространяется под лицензией AGPL v3. В 2021 году активная разработка оригинального RainLoop остановилась — последний релиз 1.16.0 вышел в сентябре 2021 года, уязвимости с тех пор не закрывались. В 2020 году разработчики сообщества создали форк SnappyMail: переписан под PHP 7.4–8.3, улучшена безопасность, добавлена поддержка OAuth2 и современных IMAP-расширений (CONDSTORE, QRESYNC).
RainLoop vs SnappyMail vs Roundcube
| Параметр | RainLoop | SnappyMail | Roundcube |
|---|---|---|---|
| Статус разработки | Заброшен (2021) | Активен (2024) | Активен |
| PHP-версии | 5.x–7.x | 7.4–8.3 | 7.4–8.3 |
| База данных | Не нужна | Не нужна | MySQL/PostgreSQL |
| Лицензия | AGPL | MIT | GPL |
| Потребление RAM | ~20 МБ | ~18 МБ | ~30 МБ |
Применение в хостинге
RainLoop и SnappyMail устанавливают как webmail на серверах с Postfix + Dovecot — там, где не нужна база данных для webmail. Плагины для cPanel и ISPmanager позволяют интегрировать SnappyMail как webmail по умолчанию. Директорию с конфигами (data/_data_/_default_/) нужно закрыть от публичного доступа через Nginx: location /data { deny all; }. Для новых проектов выбирайте SnappyMail — RainLoop не получает обновлений безопасности с 2021 года, что создаёт неустранимые риски для сервера.
Безопасность и настройка продакшн-сервера
Несколько обязательных мер перед запуском RainLoop/SnappyMail в production:
- Закрыть директорию data от публичного доступа: в Nginx добавить
location ^~ /rainloop/data/ { deny all; } - Установить права 644 на файлы конфигурации и 755 на директории
- Включить HTTPS — RainLoop передаёт пароли IMAP, поэтому незашифрованный HTTP недопустим
- Регулярно проверять обновления SnappyMail: безопасность webmail критична, уязвимости публикуются в CVE-базе
Интеграция с системами управления хостингом: плагин SnappyMail для ISPmanager доступен в официальном репозитории плагинов и устанавливается через интерфейс панели. После установки SnappyMail становится webmail по умолчанию для всех почтовых доменов, управляемых через ISPmanager. Совместимость с Postfix + Dovecot — полная без дополнительной настройки.