====== RainLoop ======
====== 概要 ======
[[http://www.rainloop.net/|RainLoop]]は、モダンなウェブメイラである。
マルチアカウントに対応し、柔軟にカスタマイズも可能である。
====== 導入 ======
[[http://www.rainloop.net/downloads/|ダウンロードサイト]]から最新版をダウンロードし、適当なディレクトリに展開する。
ここでは、/var/www/rainloop に展開するものとする。
# unzip -d /var/www/rainloop rainloop-latest.zip
...
# cd /var/www/rainloop
# chown -R apache.apache .
...
# find . -type d -exec chmod 755 {} \;
...
# find . -type f -exec chmod 644 {} \;
...
所有者は、ブラウザの実行ユーザとグループにし、パーミッションは 644 (ディレクトリは755)とする。
次に、Apache の設定ファイルを作成する。
/etc/apache/conf.d/rainloop.conf として、以下の内容のファイルを作成する。
Alias /webmail /var/www/rainloop
SSLRequireSSL
SSLを必須とする設定は、RainLoop側でも可能だが、実験中の機能で不安定とあるので、Apacheのレベルで設定する。
ここまで、行ったところで、apache をリロードすると、https://www.your.domain/webmail/ でアクセス可能となる。
====== 設定 ======
基本的な設定は、https://www.your.domain/webmail/?Admin にアクセスすることで行う。
デフォルトの管理者パスワードは12345であり、速やかに変更することが求められる。
必要に応じて、管理ユーザ名も変更するべきだろう。
言語設定として、メイラの方は日本語も選べるが、管理画面にはないので、英語又は好みの言語に設定する。
基本的には、見たままなので、必要な項目を修正すればよい。
===== Sieve =====
RainLoop は 1.8以降で、実験的ながら、Sieveを利用したフィルタの管理機能を持っている。
IMAPサーバ側で、managesieve の機能が有効になっていれば、それを利用して、フィルタリングスクリプトを管理することができる。
==== 設定 ====
ドメインの設定画面を開くと、**Sieve configuration (beta)**というリンクがあるのでこれをクリックする。
{{RainLoop:domain1.png}}
クリックすると下のような画面が開くので、managesieveに関する情報を入力する。
ポートは古いサーバなら2000、最近のものなら4190を使うことになると思われる。
{{RainLoop:domain2.png}}
入力したら、必ず、左の **Test** をクリックし、成功したのを確認した後、右端の **Update** を押す。
((Close を押しても変更は反映されない。これはCancelと同義。))
このとき、ユーザ個人のフィルタリングを許すかどうかは、サーバ側の設定と合わせて決める。
==== ルールの作成と管理 ====
個人での管理を有効にしているという前提で進める。
この場合、フィルタの管理画面は、ドメインにログインしている個人の設定画面に現れる、**Filters**というリンクを押すことで到達できる。
{{RainLoop:filters1.png}}
この画面で、フィルターのルールを作成したり修正したりして、それを保存すれば、サーバ側に反映される。
* 不具合
ルールの件数が増えてきたところで突然、ルールを追加できなくなった。
追加して、「Save」しようとすると、**Invalid Token**というエラーになる。
とりあえず、[[https://github.com/RainLoop/rainloop-webmail/issues/861|#861]]で、レポートはしてあるが、どうなるか不明。
$this->oHttp->GetPost('Action', null);
というコールが、nullを返しているので、いずれにしても、何らかの構造が壊れているっぽい。
PHPの memory_limit, post_max_size, upload_max_filesizeをそれぞれ、256M, 64M, 32Mに拡大してみたが、変化はなかった。
Rawルール定義にして、このルールよりも大きなルールファイルを作ってみたが、それは問題なく保存できたので、RainLoop 内部のルール構造→ルールファイルの変換に問題があるのだと思う。((2015/10/19 1.9.3.365がリリースされたが改善せず。))
===== 二段階認証 =====
Security タブの中に、設定項目がある。
デフォルトではオフになっているので、必要ならば、 **Allow 2-Step Verification**にチェックを入れる。チェックを入れると、**Enforce 2-Step Verification**も選べるようになるので、これも必要に応じてチェックする。
ユーザは、ログイン後に、設定→Security のタブで、二段階認証を有効にすることが出来る。((Enforce が指定されていない場合。))
有効にすると、設定用のQRコードと、英数字からなるコードが表示されるので、Google認証ツールなどに読み込ませて利用を開始する。
開始するには、必ず、ツールに表示されているPINを使って、テストを行い、正しく受け入れられることを確認する必要がある。
あとは、通常のログインプロセスで、IDとパスワードを入力したあとで、PINの入力を求められるので、それを入力すればよい。
====== その他 ======
===== Authentication =====
認証については、基本的に PLAIN しかサポートしていない。
CRAM-MD5については、コードは存在している
((rainloop/v/0.0.0.0/app/libraries/MailSo/Imap/ImapClient.php にあり、1.9.3.365現在、無効化されたままになっている。))
ものの、
// TODO
if (false && $this->IsSupported('AUTH=CRAM-MD5'))
のように、無効化されている。
RainLoopのサーバと同一ネットワーク内のIMAPサーバにアクセスする分にはあまり神経質にならないでもよいだろうが、外のIMAPサーバとやりとりをする場合には、経路がSSL/TLSで保護されていないと、やや危険だと思われる。
マルチアカウントで、外のアカウントを設定している場合には、注意が必要。
===== courier-imap =====
ここにきて、今更IMAPサーバを [[dovecot]]へと乗り換えるきっかけとなったのは、RainLoopと、courier-imapとの組み合わせが最悪なまでに悪かったことがある。
メールが1,000通以上あるようなフォルダーを扱おうとすると、どうやら、TIMEOUTしてしまい、まともにアクセス出来ないようである。
実験中のパラメータ等を使ってチューニングも施してみたがあまり効果はなかった。
[[dovecot]]との組み合わせは大変良好であり、もし、IMAPサーバとの相性が悪そうであれば、置き換えを検討するべきだろう。
[[メールサーバ]]