Roundcube webmailのインストールと設定

RoundcubeはPHPで書かれたIMAP対応のフリーWebメールソフトで使いやすく見た目もリッチです。もちろん日本語環境でも問題なく使えます。

PHPで書かれたフリーのWebメールソフトと言えばSquirrelMailが有名ですが、Roundcubeも使いやすいです。

 

 

MySQLのインストールと設定

MySQLはCentOS-6標準の物を利用します。

MySQLのインストールと初期設定は、こちらをご覧ください。

MySQLの基本操作は、こちらをご覧ください。

 

 

PHPのインストールと設定

必要なPHPをインストール、設定します。

なお、PHPもCentOS-6標準の5.3を使用しますが、CentOSの標準リポジトリではパッケージが不足するため、ここでは、EPELリポジトリを追加して利用します。

また、PHPの初期設定はこちらを参照ください。

 

EPELリポジトリの追加

EPELリポジトリを追加は、以下のコマンド行います。

wget http://ftp.jaist.ac.jp/pub/Linux/Fedora/epel/6/x86_64/epel-release-6-7.noarch.rpm
rpm -ivh epel-release-6-7.noarch.rpm


以下のコマンドで読み込みます。

yum update

 

 

PHPのインストールと初期設定

PHPのインストール

Roundcubeに必要なPHPパッケージをインストールします。

 yum install php php-cli php-common php-mbstring php-xml php-mysql php-mcrypt php-pecl-Fileinfo php-pear-MDB2 php-pear-Net-SMTP php-pear-Mail-Mime php-intl

 

PHPの設定

PHPの一般的な設定と、Roundcubeに必要な設定を行います。

/etc/php.iniの変更箇所のみ明記します。

; PHP's default character set is set to empty.
; http://www.php.net/manual/en/ini.core.php#ini.default-charset
default_charset = "UTF-8"

date.timezone = "Asia/Tokyo"

[mbstring]
; language for internal character representation.
; http://www.php.net/manual/en/mbstring.configuration.php#ini.mbstring.language
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.http_input = pass
mbstring.http_output = pass
mbstring.encoding_translation = Off
mbstring.detect_order = auto
mbstring.substitute_character = none;
mbstring.func_overload = 0
mbstring.strict_detection = Off
mbstring.http_output_conv_mimetype=

error_reporting = E_ALL & ~E_NOTICE
memory_limit = 128M
file_uploads = On
session.auto_start = 0

 

ここまで設定できたらApacheを再起動して設定を読み込ませます。

/etc/init.d/httpd restart

 

 

Roundcubeのインストール

Roundcubeは本家サイトから入手してください。

入手したアーカイブを展開します。

tar zxvf roundcubemail-0.7.2.tar.gz -C /var/www/html/

 

展開したら、リネームと必要なアクセス権限を設定します。

cd /var/www/html
mv roundcubemail-0.7.2 roundcube 
chown -R root.apache roundcube 
cd roundcube 
chmod 775 temp 
chmod 775 logs

 

 

データベースの作成と初期化

MySQLにRoundcubeで利用するデータベースを作成します。

#mysql -u root -p 
mysql> create database roundcubemail character set utf8 collate utf8_bin;
mysql> grant all on roundcubemail.* to roundcubemail@localhost identified by 'パスワード';
mysql> flush privileges;
mysql> quit

 

データベースを初期化します。

 cd /var/www/html/roundcube
su
#mysql -p roundcubemail < SQL/mysql.initial.sql

 

 

Roundcubeの設定

ブラウザからの初期設定

Roundcubeの初期設定はブラウザから行います。以下のURLにアクセスしてください。

http://localhost/roundcube/installer/

最初のページでは、必要なライブラリなどのチェック結果が確認出来ます。

以下のような状態になればOKです。

 

 

次に、初期設定をします。ここで必要な情報を入力して [CREATE CONFIG] ボタンを押下すると、/var/www/html/roundcube/config/以下にある設定ファイルのmain.inc.phpとdb.inc.phpの雛形が作られます。

この雛形の内容で、/var/www/html/roundcube/config/以下に、main.inc.phpとdb.inc.phpファイルを作成します。

 

 

次に、最終のテストページです。

もし、設定ファイルに不具合があればここで表示されます。

また、メールの送信テストや、IMAPサーバへの接続テストも実施出来ます。ここでテストにパスすればWEBでの設定は終了です。

 

 

WEB設定スクリプトの削除

WEBでの初期設定が終了したら、installerスクリプトを削除しておきます。

rm -rf /var/www/html/roundcube/installer

以降の設定は、手動でmain.inc.phpを編集します。

 

追加設定

main.inc.phpの以下を修正します。
デフォルトのメール表示文字コードを設定します。

メールのドメイン名を設定
$rcmail_config['username_domain'] = 'unixlife.jp';

デフォルトのメール表示文字コードを設定
// Use this charset as fallback for message decoding
$rcmail_config['default_charset'] = 'ISO-2022-JP';

既定フォルダを作成する(Sent,Drafts,Junk,Trash)
// automatically create the above listed default folders on login
$rcmail_config['create_default_folders'] = true;

 

設定が終了したら、以下のURLでアクセスし利用出来ます。

http://localhost/roundcube/

以上でRoundcubeのインストールと初期設定は終了です。

 

 

ログの設定

デフォルトでは、$ROUNDCUBE_HOME/logs/以下にログファイルが出力されますが、ローテーションは行われません。

そこで、syslog経由で/var/log/messagesにログを出力するよう変更します。

$ROUNDCUBE_HOME/conf/main.inc.php

// log driver:  'syslog' or 'file'.
#$rcmail_config['log_driver'] = 'file';
$rcmail_config['log_driver'] = 'syslog';

// Log sent messages to <log_dir>/sendmail or to syslog
$rcmail_config['smtp_log'] = true;

// Log successful logins to <log_dir>/userlogins or to syslog
$rcmail_config['log_logins'] = true;

 

 

Roundcubeの機種依存文字の文字化け対策

Roundcubeの機種依存文字の文字化け対策を行います。

日本語メールの多くでは、ISO-2022-JPが利用されますが、これでは機種依存文字が文字化けします。

そこで、ISO-2022-JPは、IS-2022-JP-MSとして処理するように変更します。

$ROUNDCUBE_HOME/program/include/main.inc

// convert charset using mbstring module
if ($mbstring_loaded) {
   $aliases['WINDOWS-1257'] = 'ISO-8859-13';
   $aliases['JIS'] = 'ISO-2022-JP-MS';
   $aliases['ISO-2022-JP'] = 'ISO-2022-JP-MS';
   $aliases['EUC-JP'] = 'EUCJP-WIN';
   $aliases['SJIS'] = 'SJIS-WIN';
   $aliases['SHIFT_JIS'] = 'SJIS-WIN';

	if ($mbstring_list === null) {
      $mbstring_list = mb_list_encodings();
      $mbstring_list = array_map('strtoupper', $mbstring_list);
    }

 

 

RoundcubeのPluginを利用する

Roundcubeには多くのプラグインが用意されており、使用頻度の多い物は標準でインストールされていますので、設定すればすぐに利用出来ます。

また、http://trac.roundcube.net/wiki/Plugin_Repositoryから新たに入手し利用する事もできます。

プラグインは、$ROUNDCUBE_HOME/pluginsの中にあります。それぞれのプラグインの利用方法にはREADMEが付いていますので参照してください。

プラグインの有効にするには、$ROUNDCUBE_HOME/config/main.inc.phpで以下のように設定します。

// List of active plugins (in plugins/ directory)
$rcmail_config['plugins'] = array(
'markasjunk2',
'managesieve'
);

以下の設定をして roundcube にアクセスするとプラグインが有効になっています。

 

 

marksjunk2 – [迷惑メールマークプラグイン]の設定方法

marksjunk2の入手

迷惑メールに関するプラグインは、デフォルトでmarksjunkが含まれていますが、これは迷惑メールマークを付ける事は出来ても、外す事が出来ません。

そこで、Mark as Junk 2プラグイン(marksjunk2)を以下から入手し設定します。

http://trac.roundcube.net/wiki/Plugin_Repository

 

プラグインのインストール

markasjunk2.tar.gzを入手したら、プラグインフォルダに展開します。

tar zxvf markasjunk2.tar.gz -C $ROUNDCUBE_HOME/plugins/

 

日本語ロケールの作成

Mark as Junk 2プラグインには日本語localeが含まれていないため、USファイルを元に作成します。

cd $ROUNDCUBE_HOME/plugins/markasjunk2/localization/ 
cp en_US.inc ja_JP.inc

 

作成したja_JP.incファイルを以下の内容に編集します。

<?php
$labels = array();
$labels['buttonjunk'] = '迷惑メール';
$labels['markasjunk'] = '迷惑メールに設定しました。';
$labels['buttonnotjunk'] = '非迷惑メール';
$labels['markasnotjunk'] = ''非迷惑メールに設定しました。';
$messages = array();
$messages['reportedasjunk'] = '迷惑メートして報告しました。';
$messages['reportedasnotjunk'] = '迷惑メールフォルダに移動しました。';
?>

 

プラグインのconfファイルを準備

次に、プラグイン設定ファイルの雛形をコピーします。

cd $ROUNDCUBE_HOME/plugins/markashunk2
cp config.inc.php.dist config.inc.php

 

Roundcubeでプラグインを有効化

最後に、Roundcubeの$ROUNDCUBE_HOME/config/main.inc.phpでmarksjunk2プラグインを有効にします。

$rcmail_config['plugins'] = array(markasjunk2);

 

 

Message list context menu – [右クリックでメニューを表示し操作するプラグイン]の設定方法

このプラグインには、Jqueryuiプラグインが必要です。

Jqueryuiのインストールと設定

tar zxvf jqueryui-1.8.6.tgz -C $ROUNDCUBE_HOME/plugins/
cd $ROUNDCUBE_HOME/plugins/jqueryui
cp config.inc.php.dist config.inc.php

 

Message list context menuのインストールと設定

次に、Message list context menuをインストールします。

tar zxvf contextmenu.tar.gz -C $ROUNDCUBE_HOME/plugins/

 

日本語対応していないため、ロケールファイルを作成します。

cd $ROUNDCUBE_HOME/plugins/contextmenu/localization 
cp en_US.inc ja_JP.inc

 

ja_JP.incを以下の内容に変更します。

<?php
$labels = array();
$labels['markreadfolder'] = '全てのメールを既読にする。';
$labels['collapseall'] = '全てのフォルダを閉じる。';
$labels['expandall'] = '全てのフォルダを開く。';
$labels['copyto'] = 'コピー...';
$messages = array();
?>

 

copymessageのインストールと設定

次に、Message list context menuから利用するコピー用プラグインのcopymessageをインストール、設定します。

tar zxvf copymessage.tar.gz -C $ROUNDCUBE_HOME/plugins/

 

日本語対応していないため、ロケールファイルを作成します。

cd $ROUNDCUBE_HOME/plugins/copymessage/localization
cp en_US.inc ja_JP.inc 

 

ja_JP.incを以下の内容に変更します。

<?php
$labels = array();
$labels['copyto'] = 'コピー...';
$messages = array();
?>

 

インストールしたプラグインの有効化

最後に、インストールしたJqueryui、Message list context menu、copymessageプラグインをmain.inc.phpで有効にします。

$ROUNDCUBE_HOME/config/main.inc.php

// List of active plugins (in plugins/ directory)
$rcmail_config['plugins'] = array(
jqueryui,
contextmenu,
copymessage);

 

 

Compose Addressbook – [メール作成画面からアドレス帳を利用プラグイン]の設定方法

メール作成画面上に、簡易アドレス帳を開き宛先を選択するプラグインをインストール、設定します。

Compose Addressbookプラグインでは、Jqueryuiプラグインが必要です。

Jqueryuiのインストールと設定

tar zxvf jqueryui-1.8.6.tgz -C $ROUNDCUBE_HOME/plugins/ 
cd $ROUNDCUBE_HOME/plugins/jqueryui
cp config.inc.php.dist config.inc.php

 

Compose Addressbookのインストールと設定

tar zxvf compose_addressbook-4.0.tgz -C $ROUNDCUBE_HOME/plugins/
cd $ROUNDCUBE_HOME/plugins/compose_addressbook/
cp config.inc.php.dist config.inc.php

 

config.inc.phpの設定

<?php
// $rcmail_config['compose_addressbooks'] = array('ldap');
// $rcmail_config['compose_addressbooks'] = array('sql', 'static');
// $rcmail_config['compose_addressbooks'] = array('sql');
$rcmail_config['compose_addressbook_mode'] = 'full';
?>

 

インストールしたプラグインの有効化

最後に、インストールしたJqueryui、Compose Addressbookプラグインをmain.inc.phpで有効にします。

$ROUNDCUBE_HOME/config/main.inc.php

// List of active plugins (in plugins/ directory)
$rcmail_config['plugins'] = array(
jqueryui,
compose_addressbook);

 

 

Global Addressbook – [共用アドレス帳プラグイン]の設定方法

Roundcubeメールシステム上で共有利用するアドレス帳です。

Global Addressbookのインストール

tar zxvf globaladdressbook.tar.gz -C $ROUNDCUBE_HOME/plugins/
cd $ROUNDCUBE_HOME/plugins/globaladdressbook
cp config.inc.php.dist config.inc.php

 

Global Addressbookの設定

config.inc.phpを以下の様に設定します。

$rcmail_config['globaladdressbook_groups'] = true;
// global address book admin user
$rcmail_config['globaladdressbook_admin'] = array('admin@unixlife.jp','user1@unixlife.jp');

 

インストールしたプラグインの有効化

最後に、インストールしたGlobal Addressbookプラグインをmain.inc.phpで有効にします。

$ROUNDCUBE_HOME/config/main.inc.php

// List of active plugins (in plugins/ directory)
$rcmail_config['plugins'] = array(globaladdressbook);

 

 

password – [パスワード変更プラグン]の設定方法

ここでは、OpenLDAPに格納されているユーザパスワードを変更する設定方法を解説します。

なお、OpenLDAPの構成は、当サイトで掲載してあるPostfix+Dovecot+OpenLDAPでメールサーバ の構成を前提としています。

PHPパッケージのインストール

passwordプラグインでOpenLDAPのパスワードを変更するには、php-pear-Net-LDAP2パッケージが必要なためインストールします。

yum install php-pear-Net-LDAP2

 

プラグインのconfファイルを準備

 cd plugins/password/
cp config.inc.php.dist config.inc.php

 

プラグインを設定

plugins/password/config.inc.php

//$rcmail_config['password_driver'] = 'sql';
$rcmail_config['password_driver'] = 'ldap';
// LDAP and LDAP_SIMPLE Driver options
// -----------------------------------
$rcmail_config['password_ldap_host'] = 'localhost';
$rcmail_config['password_ldap_port'] = '389';
$rcmail_config['password_ldap_starttls'] = false;
$rcmail_config['password_ldap_version'] = '3';
$rcmail_config['password_ldap_basedn'] = 'dc=mail,dc=unixlife,dc=local';
$rcmail_config['password_ldap_method'] = 'user';
// LDAP user DN mask
$rcmail_config['password_ldap_userDN_mask'] = 'uid=%login,ou=unixlife.jp,dc=mail,dc=unixlife,dc=local';
//$rcmail_config['password_ldap_searchDN'] = 'cn=roundcube,ou=services,dc=example,dc=com';
//$rcmail_config['password_ldap_searchPW'] = '';
//$rcmail_config['password_ldap_search_base'] = 'ou=people,dc=example,dc=com';
$rcmail_config['password_ldap_search_filter'] = '(&(objectClass=mailUser)(uid=%u)(accountActive=TRUE))';
$rcmail_config['password_ldap_encodage'] = 'md5';

 

Roundcubeでプラグインを有効化

最後に、Roundcubeのconfig/main.inc.phpでpasswordプラグインを有効にします。

$rcmail_config['plugins'] = array(
markasjunk2,
password);

 

 

managesieveプラグインの設定方法

managesieveプラグインにより、Dovecot-PigeonholeのSieveの設定を行う事ができます。

これで、Roundcubeからメールの振り分け設定が可能になります。

Dovecot-Pigeonhole Sieveの設定方法は、当サイトで掲載してあるPostfix+Dovecot+OpenLDAPでメールサーバ をご覧ください。

 

プラグインのconfファイルを準備

cd plugins/managesieve/
cp config.inc.php.dist config.inc.php

 

プラグインを設定

plugins/managesieve/config.inc.php

// managesieve server port
$rcmail_config['managesieve_port'] = 4190;

$rcmail_config['managesieve_host'] = 'localhost';

// default contents of filters script (eg. default spam filter)
$rcmail_config['managesieve_default'] = '/etc/dovecot/sieve/default.sieve';

 // ruleset name
 $rcmail_config['sieverules_ruleset_name'] = '.dovecot';

 

Roundcubeでプラグインを有効化

最後に、Roundcubeのconfig/main.inc.phpでmanagesieveプラグインを有効にします。

$rcmail_config['plugins'] = array(
markasjunk2,
password,
managesieve);

 

 

参考資料:

http://trac.roundcube.net/wiki

Leave a Comment


NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <img localsrc="" alt="">