このままでいっか

アニメとか,プログラミングとか,研究とか,思ったことをだらだらと書く感じで

PHP製Webメーラー:Rainloopを動かす!

以前,大学のネットワーク内にある研究室のメールサーバに,大学外からアクセスするために,公開しているWebサーバを経由してメールを送る方法を取りました.

サーバの構成としては,ネットワークに公開しているWebサーバ(Mac OSMAMP PRO/apache)をリバースプロキシとして設定し,サーバローカルのネットワークにある別Webサーバ(Debianapache)にプロキシし,そいつから自前のメールサーバ(Mac OSPostfix/dovecot)にアクセスしてメールを送らせるとします.

その際に利用したPHP製のWebメーラーであるRainloopDebian上で動かすためのTipsについて,最新版のRainloopに対応したものがなかったので,参考にしたページと共に,チラ裏的なメモ書きを残しておきます.

Rainloopとは

既に述べたとおり,RainloopはWebメーラーを作るためのオープンソースソフトウェアで,一定の制限以内であれば無料(AGPLv3)で利用することができます.

(制限をなくす有料プランについてはこちら

github.com

f:id:dbym4820:20180228200235p:plain 戦時中の情報統制された教科書のようになっていますが,Rainloopを使えば,このようなGmailに近い,なかなか使い勝手の良いWebメーラがすぐに公開できます.

本エントリでは,ローカルではメールサーバ(hogehoge.blah-univ.ac.jp)が動いていることを前提とし,大学外部からRainloop ver.1.11.3 を用いてメールを送る際のTips的なことを書いていきます. PHPは7.1です.

では行きましょう.

ダウンロード

Rainloop公式のダウンロードページから,Community editionを選択し,ダウンロードします.

f:id:dbym4820:20180228194133p:plain

もしくは,Githubからダウンロードします.

これをWebサーバ上の動作させたいディレクトリ下に設置し,パーミッションを設定すれば,ほぼ完了です.

基本的な設定は

qiita.com

を参考にさせていただきました.

上の記事にも書かれていますが,基本的な設定は,対象URL/?adminでアクセスし,設定ディレクトリから進むことができます.

初期のユーザ名は「admin」でパスは「12345」です.これは運用を始める前に変更するべきでしょう.

ハマりどころ:設定ファイルの場所

大きなハマりどころかは微妙ですが,自前のメールサーバとSSL/TLSで通信しようとすると,当該メールサーバの証明書をRainloopに持たせないければいけませんが,これを設定する場所がわかりにくいです.

調べた感じでは,

/path-to-rainloop-top-directory/data/_data_/_default_/configs/application.ini

が設定ファイルです. 後発のバージョンのRainloopでどのように変更されるかはわかりませんが,1.11.3では,この設定ファイル内に直接,Certification Fileへのパスを書く必要があるようです.

基本的にここに表れる設定はRainloopのAdmin画面から設定できるのですが,SSL証明書だけはなぜか設定できないみたいです.

メールのやり取りが平文で流れるのは好ましくないので,通信をSSLで暗号化します.Apacheの設定を正しく設定し,SSLモジュールを起動させ,このSSL用のCertification Fileを正しく指定します.

ここで指定する証明書のCN(Common Name)は,当該サーバ自身のドメインではないく,エンドユーザがアクセスしてくるリバースプロキシとしてのドメインを指定して発行するようにしましょう.

終わりに

元々,SMTPサーバはGmailのものを設定し,名前を自前のメールアドレスにするように指定していましたが,最近,この設定がスパム判定されるようになってしまい,やむなくWebメーラーを立ち上げることになりました.

似たような問題にぶつかった人の助けに,少しでもなればいいかなと思います.

間違い等があるかもしれませんので,気になった方はご指摘いただけるとありがたいです.

参考にした資料

公式

Qiita

個人ブログ