Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
41
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

updated at

PHP製WEBMAIL「rainloop」はUIがキレイさん

PHP製のWebmailツール rainloopを試してみました。
このジャンルだと SquirrelMailさん とか Roundcubeさん が有名そうですが、
機能的な部分は置いておいてUIがかなり綺麗なので満足度が高そうということでさっそく実験です。

この記事に記載した内容

  • rainloopのインストール手順の説明
  • 使用直前までの設定方法
  • 非公式な日本語化の方法

環境

以下の環境で設定した項目を記載しています。

  • CentOS 7
  • PHP 5.4.16
  • Apache 2.4.6

apache, postfix, dovecotなどのこの記事外の設定はすでに設定が完了されている状態を想定しています。

また、インストールディレクトリを /work/virtual/webmail.example.com にしているので
絶対パスで書いていない時は基本的にこの配下からのパスか、もしくはお察しください。

手順

準備

まずファイルの準備をします。

ディレクトリを掘る
$ mkdir /work/virtual/webmail.example.com

ファイルのダウンロード
$ wget http://repository.rainloop.net/v2/webmail/rainloop-community-latest.zip

作業用ディレクトリに解凍
$ unzip rainloop-community-latest.zip -d /work/virtual/webmail.example.com

ディレクトリのパーミションを整えます
modeを揃える
$ sudo find webmail.example.com -type d -exec chmod 755 {} \;
$ sudo find webmail.example.com -type f -exec chmod 644 {} \;

所有権をapacheの権限で行けるように揃える
私の環境はapacheユーザ
$ sudo chown -R apache:apache webmail.example.com

次にapacheの設定をする
※自分の環境はネームベースバーチャル
rainloop.confという別ファイルを作成しました。

#
# Rainloop Webmail Configuration
#

<VirtualHost *:80>
  ServerName webmail.example.com
  DocumentRoot /work/virtual/webmail.example.com
  <Directory /work/virtual/webmail.example.com/>
      <IfModule mod_authz_core.c>
          # Apache 2.4
          Require all granted
      </IfModule>
      <IfModule !mod_authz_core.c>
          # Apache 2.2
          Order Deny,Allow
          Deny from all
          Allow from 127.0.0.1
          Allow from ::1
      </IfModule>
  </Directory>
</VirtualHost>

confを作成しているので、apacheをリスタートします。

$ sudo /sbin/httpd -t
Syntax OK
$ sudo systemctl restart httpd

以上で、アクセスができるようになっているはずです。ものすごく簡単ですね。いいんでしょうか。

ブラウザで確認

01.png

次に http://webmail.example.com/?/admin にアクセスし管理用の画面が出ることを確認

02.png

こんな感じです、素敵なUI!

ログイン後の画面はこんな感じ

03.png

デザインテンプレートを変えると

04.png

これが一番良さですね。

管理画面のパスワード変更

また、管理画面はアカウント名が 「admin」ユーザ名が「12345」に設定されているのですみやかに変更してください。

05.png

日本語化

デフォルトでも日本語を選択することで日本語の表示ができるようになっていますが、さらに日本語化します。
まず通常ユーザの画面の日本語設定ファイルから
場所は rainloop/v/1.9.3.363/langs/ja-jp.ini にあります。

langのディレクトリに移動
$ cd webmail.example.com/rainloop/v/1.9.3.363/langs/

こんな感じで言語があります
$ ls
admin   cs.ini     en.ini  hu.ini  ja-jp.ini  lv.ini  pl.ini     ro.ini  sv.ini  zh-cn.ini
ar.ini  de.ini     es.ini  is.ini  ko-kr.ini  nl.ini  pt-br.ini  ru.ini  tr.ini  zh-tw.ini
bg.ini  en-gb.ini  fr.ini  it.ini  lt.ini     no.ini  pt-pt.ini  sk.ini  ua.ini

非公式だと思うんですが、リネームします。
$ sudo mv ja-jp.ini ja.ini

その後、設定ファイルが以下のディレクトリにあるので編集。
$ vim data/_data_/_default_/configs/application.ini

編集はこの一箇所のみです
$ sudo diff -u application.ini application.ini.origin
--- application.ini     2015-10-07 18:36:19.608267403 +0900
+++ application.ini.origin      2015-10-07 18:27:37.419085215 +0900
@@ -17,7 +17,7 @@
 allow_user_background = Off

 ; Language used by default
-language = "ja"
+language = "en"

このja.iniが中途半端な日本語になってるので、自分のほぼ0な英語力を駆使して日本語にします。
するとだいたいこんな感じぐらいにはなります。
08.png

管理画面のlangファイルは
$ rainloop/v/1.9.3.363/langs/admin/
にあるので適当に
$ cp -ap en.ini ja.ini
とかをしてそのファイルを日本語に直すと日本語になるはずです。

するとこんな感じの画面に
07.png

ドメインを有効にする

実際使用するには、使用許可するドメインの設定をする必要があります。
06.png

管理用画面のドメインメニューからドメインと追加することで通常のログインをすることができます。
また試してませんがここで設定したものは

data/data/default/domains/

の中にiniファイルがあるのでもしかしたら直接こっちを作成してしまってもいいかもしれません。

最後に

UIがキレイなのは凄くストレスがなくてよろしいです。
最近では、会社以外でメールソフト設定をすることが減りました。スマホを設定するのみなので、一元的にみるのにWEBMAILっていう選択肢はありだと思いました。
これはもちろんgmailでも可能ですが。

また、日本語の訳が適当すぎるので、もう少しちゃんと整えたらrainloopにプルリクエストしてみようと思います。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
41
Help us understand the problem. What are the problem?