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


モチベーション

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

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

公式サイト
公式リポジトリ

インストール

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/

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

デーモン化

さて、困ったことに、この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も綺麗ですし、いい感じではないでしょうか。ベータが取れるのがちょっと楽しみです。