レガシーな意見を振り切れず、わずか20人の小売りの会社にメールサーバを一から構築した。その際、メールの自動フォルダ振り分けができるようdovecotにsieveを追加し、その操作のため、初めてRoundcube環境も構築したのだが、これがどうして、通常のメーラーとしてもなかなか良い。
ただ、Roundcubeのログインがメールアドレスとパスワードでしかできないのが自分の環境的に使いにくい。出来れば、自分で設定したユーザ名とパスワードでログインしたいため、ファイルに設定したユーザ名とパスワードでログインできるようなプラグインを作成してみた。また、20人分の設定も面倒なので、CSVにした一覧から設定ファイルを生成するツールも作成した。
インストール方法
- RoundcubeのPluginsフォルダーにGithubからソースをダウンロードする
- Roundcubeのconfigにvirtuserpassを設定
Linuxなら以下のような感じです。
cd (Roundcubeをインストールしたフォルダ)/plugins git clone https://github.com/y-toy/virtuserpass virtuserpass vim ../config/config.inc.php --- # "virtuserpass" を $config['plugins'] に追加 $config['plugins'] = array('virtuserpass'); # もしくはファイルの一番下に以下を追加 # $config['plugins'][] = 'virtuserpass';
設定
“(Roundcubeをインストールしたフォルダ)/plugins/virtuserpass/config”の下に”config.inc.php”を作成し、以下のような設定をします。
// 主な設定 $config['virtuserpass'] = array( 'taro'=>array('967Joe123','taro@biggy.co.jp','emailPass1234'), 'ziro'=>array('pass1234','ziro@biggy.co.jp','emailPass5678'), 'saburo'=>array('1234test','saburo@biggy.co.jp','emailPass7777'), ); // オプション $config['virtuserpass_scramble']=false; $config['virtuserpass_email_scramble']=false; $config['virtuserpass_allow_email_login']=true;
上の設定では、”taro”、”ziro”、”saburo”が設定してあり、”taro”さんはアカウント”taro”とパスワード”967Joe123″でログインできます。(対応するメールアドレスとパスワードは’taro@biggy.co.jp’と’emailPass1234’。)
$config[‘virtuserpass’]
ログインするアカウントの設定をします。ログインするユーザ名とパスワード、内部で変換されるメールアドレスとパスワードを設定します。
$config['virtuserpass'] = array( 'ユーザ名' => array('パスワード', 'メールアドレス', 'メールのパスワード'), // いくつでも設定できます。 );
$config[‘virtuserpass_scramble’]
trueを設定するとconfigファイルのユーザのパスワードがMD5でハッシュされているものとして扱います。パスワードが外部に漏れない用のセキュリティ考慮です。後から説明するツール”makeConfigFileFromCSV.php”で設定できます。
$config[‘virtuserpass_email_scramble’]
trueを設定するとconfigファイルのメールパスワードが暗号化されているものとして扱います。ないよりましでしょの気休めセキュリティです。後から説明するツール”makeConfigFileFromCSV.php”で設定します。
$config[‘virtuserpass_allow_email_login’]
falseを設定するとメールアドレスを使ったログインが出来なくなります。
ツール
CSVファイルから一括でユーザをconifgに設定できるようにツールも作っています。
使い方
php ./makeConfigFileFromCSV.php csv-file-path [1|0] [1|0] [1|0]
引数 1 :CSVファイルのパス
引数 2 : 1を設定するとログイン時のパスワードがハッシュされて設定されます。
引数 3 : 1を設定するとメールアドレスのパスワードが暗号化されて設定されます。
引数 4 : 0を設定するとメールアドレスでのログインが出来なくなります。
Configファイル生成の仕方
- CSVファイルを作成します。CSVファイルは以下の4列で作成してください。ログインユーザ名,ログインパスワード, メールアドレス, メールアドレスのパスワード。このプラグインのconfigフォルダーの下にsample.csvファイルがありますので参考ください。
- 下のような感じでこのツールを実行します。このプラグイン用のconfigファイルが作成されます。
cd (Roundcubeをインストールしたフォルダ)/plugins/virtuserpass php ./makeConfigFileFromCSV.php 作ったCSVファイルのパス 1 1 1
3. 作成したCSVファイルは念のため削除するか、公開されていないフォルダに移動します。