WebメールクライアントのmailpileをCent OS 6に入れてみた。

![スクリーンショット 2015-06-28 11.56.48.png](https://qiita-image-store.s3.amazonaws.com/0/77225/fa3c8155-215c-f137-1863-896f66b6cbda.png)

# モチベーション
個人用にVPS上で運用しているメールアドレスがあるのですが、これまではスマホからしか送受信していませんでした。
ところが、最近ちょこちょこPCでサービスの利用登録などに利用した際に、メールアドレス認証などのリンクが踏みづらいなー、面倒だなー、どうにかしたいなーなどと思うようになりました。
PCで動くメールクライアントを使えば一発解決なわけなんですが、Gmail等のWeb上でみれるようなメールクライアントを入れてみようと思ったので、ちょっと探した結果、**mailpile**にたどり着きました。

よくよく見てみると、まだベータ版であり、ベータの段階では個人利用でのみ対応（＝複数人で共有して利用するような使い方は対応中）のようです。
ただ、今回のモチベーション的には全く問題ないので、入れてみました。

[公式サイト](https://www.mailpile.is/)
[公式リポジトリ](https://github.com/mailpile/Mailpile.git)

# インストール
## Python 2.7をいれる
mailpileを実行するにはPython 2.7以上が必要になります。
残念ながら、Cent OS 6のPythonは2.6なので、まずはPython 2.7を入れました。

Qiitaにも、Cent OS 6に新しいPythonを入れる記事がいくつか見つかりましたが、ソースからインストールする方法を書かれているものだったりしたので、一旦rpmで入れられないか探して、以下のページに辿り着きました。
http://pylog.applifirst.jp/2014/08/30/pythoninstall_to_centos/

新しいリポジトリを追加し、python2.7を入れます。
```
sudo rpm -ivh http://dl.iuscommunity.org/pub/ius/stable/CentOS/6/x86_64/ius-release-1.0-14.ius.centos6.noarch.rpm
sudo yum install python27-devel python-pip27
```

完了したら,　やっとmailpileのインストール作業です。

### 余談
と、2.7を先に入れるように書きましたが、最初からわかっていたわけではなく、実際には2.6でインストール作業を行ったら最後の最後、実行するところで以下の様なエラーが出ましてですね…。

```
File "/usr/local/apps/mailpile/mailpile/commands.py", line 1894
    with BLOCK_HTTPD_LOCK, Idle_HTTPD():```
                         ^
SyntaxError: invalid syntax
```
全く同じエラーが出ている人が居たので、それを参考にしました。
https://github.com/mailpile/Mailpile/issues/1179

## mailpileをいれる
まずはプログラムを実行する場所を作ります。
僕は`/usr/local/apps/mailpile`に作りたかったので、以下の感じでソースを持ってきました。

```
sudo mkdir -p /usr/local/apps/mailpile
sudo cd /usr/local/apps/
sudo git clone https://github.com/mailpile/Mailpile.git mailpile
```

次に、pipでライブラリをインストールします。

```
sudo pip2.7 install -r requirements.txt
```

このとき、`xsltproc`が無い、みたいな感じのエラーが出た場合は、

```
sudo yum install libxslt-devel
```

とすれば解決するはずです。

これで、インストール自体は完了です。
思ってたより簡単でした。

# 実行
一応、rootで実行しないようにユーザを作ってみました。
その後、プログラムのフォルダの所有者をこのユーザに変えておきます。

```
sudo adduser mailpile
sudo chown -R mailpile. /usr/local/apps/mailpile
```

これで、mailpileユーザで実行する準備が整いました。

とりあえず試しに動くか確認ですが、その前に少し修正を…。
python2.7を入れたのですが、残念ながら`python`コマンドは2.6のままです。
なので、起動用のソースを少しいじります。

お好きなエディタでmpを開いて、先頭の一行を書き換えます。
`#!/usr/bin/env python2`となっているので、`#!/usr/bin/env python2.7`にします。

ようやく実行です。

```
cd /usr/local/apps/mailpile
sudo -u mailpile ./mp
```

たぶん、何か表示されて、コマンド入力待ちの画面になったかと思います。

```
The Web interface address is: http://localhost:33411/
```

その中に、上記のような表示が含まれていると思うので、ここにアクセスしてみましょう。

SSHでトンネルを掘るのが手っ取り早いかと思います。

（自分用のメモ）

```
ssh -C  -L 33411:127.0.0.1:33411 接続先
```

うまく起動していれば、以下のアドレスでアクセス可能になっているかとおもいます。
http://localhost:33411/

![スクリーンショット 2015-06-30 2.53.14.png](https://qiita-image-store.s3.amazonaws.com/0/77225/16d3bf97-a0f6-5c8d-363d-91d8125cef91.png)

こんな表示がでれば成功です。おつかれさまでしたー。

## デーモン化
さて、困ったことに、この```mp```を起動している間しか、WEBから使えません。
ということで、ちょっと調べたところ、以下のページがヒットしました。
https://discourse.mailinabox.email/t/mailpile-integration/70/5
それによると、`screen`を使えば良い、とのことでした。なので、とりあえず、以下のコマンドを実行してみます。が、おそらくデフォルトでは入っていないコマンドのため、なければインストールします。

```
sudo yum install screen
```

気を取り直して…

```
sudo -u mailpile screen -dmS mailpile /usr/local/apps/mailpile/mp
```

どうでしょうか？`ps aux | grep mailpile`とすると、動いている事がわかるかと思います。
また、http://localhost:33411/ へアクセスできるかも確認しておきます。

`/etc/init.d/`におくような起動スクリプトは、デーモン化の最初に参考にしたページに詳しく書いてありますので、そういった需要のある方はそちらもご参照ください。

# まとめ
Webからメールを見ることができる**mailpile**について、導入してみました。
導入自体はかなり簡単でしたが、Cent OS 6に入れるとなるとpython 2.7をいれたりして、ちょっと面倒にはなりましたが特に問題なく入れられ、使えました。
ベータで複数ユーザにはまだ対応していないようですが、今回の目的は十分果たせました。
UIも綺麗ですし、いい感じではないでしょうか。ベータが取れるのがちょっと楽しみです。