Наличие нескольких устройств у пользователя сегодня не редкость, но помимо несомненного удобства, это вызывает и проблемы, которые решаются синхронизацией данных или размещением данных в облаке. Именно поэтому веб-клиенты электронной почты всегда остаются востребованными.
RainLoop(rainloop.net) — легкий, современный и красивый веб-клиент электронной почты, разработанный специально с учетом малого потребления памяти и использования на low-end серверах. Использование ресурсов не зависит от объема почтового ящика, сообщения или вложения, а поэтому каждый активный пользователь требует не много памяти, даже в случае обработки больших сообщений. Такой эффект достигнут за счет того что веб-клиент не использует базу данных, а обращается на прямую к файлам почтового сервера и просто отображает имеющиеся там письма, загружая по мере необходимости. Встроенная система кэширования позволяет повысить общую производительность и снижая нагрузку на веб-и почтовых серверов. Хотя в зависимостях СУБД (MySQL, PostgreSQL, SQLite и т.п.) указана, но она задействуется исключительно для хранения данных контактов). RainLoop это именно веб-клиент, в его задачи не входит настройка почтовых серверов и управление учетными записями. Поэтому какую либо базу учетных записей RainLoop не использует, после настройки подключения к почтовым серверам, пользователь может подключиться указав свой логин и пароль созданные ранее. В настройках уже есть привязка к Gmail, Yahoo, Outlook.com и qq.com. То есть фактически после установки RainLoop, пользователи могут сразу, без дополнительных настроек, подключаться к этим серверам используя свои учетные записи. Добавить любой сервер, можно за пару кликов. Чтобы ограничить подключения к почтовым серверам используются белые списки. Но у такого подхода есть и мину — нельзя объединить несколько ящиков и получать к ним доступ с одного места, для каждлой учетной записи потребуется открыть свое окно.
Поддерживает IMAP и SMTP протоколы, включая защищенные SSL и STARTTLS. Возможно шифрование сообщений при помощи OpenPGP и управление ключами (импорт и создание новых).
Интерфейс локализован. Причем это могут быть как корпоративные сервера так и публичные сервера. Поддерживаются многие функции настольного приложения drag’n’drop, горячие клавиши, автозавершение адресов, виртуальные папки, импорт и экспорт контактов (CSV, VCF и vCard). Пункты меню позволяют произвести все необходимые операции с сообщением отредактировать, переслать, пометить как спам, распечатать, скачать в виде eml файла.
Поддерживается интеграция с Facebook, Google (включая Google Drive), Twitter и Dropbox. Возможности расширяются при помощи плагинов. В поставке имеется 15 плагинов упрощающих интеграцию с некоторыми приложениями и добавляющих функциональность (белый и черный списки, капча и другие). Среди плагинов проекта [ownCloud](apps.owncloud.com/content) также можно найти RainLoop (Apps > Enable ‘RainLoop’). Те кто использует данную систему для обмена и синхронизации данных, вероятно оценят это, так как поддерживается возможность работы в одном домене с технологией единого входа SSO, что очень удобно как для пользователя так и админа (нет дублирования учетных записей). Внешний вид меняется при помощи тем. После установки RainLoop легко обновляется из админки.
Чтобы познакомиться с интерфейсом можно зайти на демостраницу проекта(demo.rainloop.net).
Распространяется под свободной Creative Commons лицензией позволяющей его использовать с некомерческими целями без ограничений.
Установка RainLoop в Ubuntu 14.04 LTS
Написан RainLoop на PHP и для установки потребуется в принципе стандартный набор: веб-сервер (Apache, nginx, lighttpd, MS IIS или другой) с поддержкой PHP. Для PHP следует установить и активировать ряд расширений. То есть каких либо особых знаний для его развертывания не потребуется. Почтовый SMTP/IMAP сервер говорили может быть любой и работать на этой же или другой машине. Его развертывание мы рассматривать не будем. Ставим пакеты для удовлетворения зависимостей:
$ sudo apt-get install curl libcurl3 libcurl3-dev php5-curl php5-mcrypt php5-cli nginx php5-fpm
Скачиваем архив с последней версией, создаем рабочий каталог и распаковываем архив:
$ wget -c http://repository.rainloop.net/v2/webmail/rainloop-latest.zip
$ mkdir /var/www/rainloop
$ cd /var/www/rainloop
$ sudo unzip `/rainloop-latest.zip
Устанавливаем владельца и права доступа:
$ sudo chown www-data:www-data -R /var/www/rainloop
$ sudo find . -type d -exec chmod 755 {} \;
$ sudo find . -type f -exec chmod 644 {} \;
Теперь осталось добавить в nginx новый сайт:
$ sudo nano /etc/nginx/sites-available/rainloop.conf
server {
server_name rainloop.example.org;
listen 80;
root /var/www/rainloop;
access_log /var/log/access.log;
error_log /var/log/error.log;
index index.php;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_index index.php;
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_keep_conn on;
include /etc/nginx/fastcgi_params;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location ~ /\.ht {
deny all;
}
location ^~ /data {
deny all;
}
}
При необходимости подключаем SSL, примеры можно легко найти в Интернет. Делаем сайт активным, создав символическую ссылку в sites-enabled:
$ sudo ln -s /etc/nginx/sites-available/rainloop.conf /etc/nginx/sites-enabled/rainloop.conf
Настраиваем DNS сервер или прописываем в /etc/hosts соответствие IP адреса имени узла:
192.168.1.100 rainloop.example.org
Перезапускаем веб-сервер:
$ sudo service nginx restart
В принципе сейчас можно зайти на страницу http://rainloop.example.org/ и попробовать подключиться к своему аккаунту Gmail (настройки для него уже есть), все должно работать. Админка находится по адресу http://rainloop.example.org/?admin, логин и пароль для входа «admin» и «12345». Далее настроек не много и они вообщем должны быть понятны без особых пояснений — указываем язык по умолчанию, лимит на размер файла, меняем пароль по умолчанию и т.д. Просто идет по всем вкладкам и просматриваем. Необходимо добавить домены, с которых клиенты будут получать письма. Для этого переходим в Domains, нажимаем Add Domain и заполняем данные SMTP и IMAP сервера: имя, IP адрес и порт, возможен выбор защищенного соединения и настройка белого списка пользователей, которым будет разрешен доступ. Чтобы пользователь регистрировался без указания домена, только по логину необходимо поставить флажок «Usе short login form» и настроить страницу входа с «Домен по умолчанию». Интеграция с социальными сетями настраивается во вкладке Social. Для каждого сервиса настройки свои, все подробности с примерами и адресами расписаны в документации.