Archive for the ‘Roundcube’ Category

Roundcubeプラグイン ユーザー情報の取得方法

Roundcubeでのユーザー情報の取得方法について紹介します。

①ユーザー情報
ユーザー情報の取得方法は以下のようになります。

$rc = rcmail::get_instance();
$user_data = $rc->user->data;
error_log(print_r($user_data,true));

このような情報が取得できます。

(
    [user_id] => 4
    [username] => foo
    [mail_host] => 192.168.15.117
    [alias] => 
    [created] => 2013-04-11 10:14:23
    [last_login] => 2013-05-17 07:45:24
    [language] => ja_JP
    [preferences] => a:5:{s:16:"message_sort_col";s:7:"subject";s:18:"message_sort_order";s:3:"ASC";s:8:"timezone";s:4:"auto";s:4:"skin";s:5:"larry";s:17:"message_threading";a:0:{}}
)

②識別情報
Roundcubeでは設定画面から識別情報を登録出来ます。

以下のようにして識別情報を取得出来ます。

$rc = rcmail::get_instance();
$identity = $rc->user->get_identity();
error_log(print_r($identity,true));
(
    [identity_id] => 4
    [user_id] => 4
    [changed] => 2013-05-17 12:28:06
    [del] => 0
    [standard] => 1
    [name] => テスト
    [organization] => bar
    [email] => foo@roundcube.com
    [reply-to] => hoge@roundcube.com
    [bcc] => test@roundcube.com
    [signature] => 署名
    [html_signature] => 0
)

③特定のユーザーの情報を取得する方法。

$rc = rcmail::get_instance();
$identity = $rc->user->get_identity();

上記のようにユーザー情報を取得する場合、ログインユーザーの情報を取得します。

その理由は、rcmailクラスの188行目が以下のようになっているからです。

    // create user object
    $this->set_user(new rcube_user($_SESSION['user_id']));

ということで、Roundcubeのuser_idがわかれば、rcube_userクラスをインスタンス化し
ユーザー情報やユーザーの識別情報を取得出来ます。

例えば、次のようになります。

$user_id = 4;
$user = new rcube_user($user_id);
$user_data = $user->data;
$user_identity = $user->get_identity();
error_log(print_r($user_data,true));
error_log(print_r($user_identity,true));
Facebooktwitterlinkedintumblrmail

Roundcubeプラグイン設定ファイルの利用方法

Roundcubeプラグイン設定ファイルの利用方法を紹介します。

以下のように設定ファイルを用意します。

ソースは以下のようになります。

sample.php

rc = rcmail::get_instance();

//設定ファイルをロード
$this->load_config('config/config.inc.php');
}

function init() {
$name = $this->rc->config->get('sample.user', '');
error_log('name:'.$name);
}

}

config.inc.php


割と簡単に使えるようです。

rc->config->get('sample.user', '');
?>

ここのconfigの実態はrcube_configオブジェクトになります。
getメソッドの第二引数は値が取得出来なかった場合のデフォルト値になります。

注意点としては


コンストラクタの中で親クラスであるrcube_pluginのコンストラクタを
必ず呼び出す必要があります。

rcube_pluginクラスのコンストラクタは以下のようになっています。

ID = get_class($this);
    $this->api = $api;
    $this->home = $api->dir . $this->ID;
    $this->urlbase = $api->url . $this->ID . '/';
  }
?>

homeディレクトリなどの値を設定しています。

そして、rcube_pluginクラスのload_configメソッドは以下のようになっています。

home.'/'.$fname;
    $rcmail = rcmail::get_instance();
    if (is_file($fpath) && !$rcmail->config->load_from_file($fpath)) {
      raise_error(array('code' => 527, 'type' => 'php',
        'file' => __FILE__, 'line' => __LINE__,
        'message' => "Failed to load config from $fpath"), true, false);
      return false;
    }

    return true;
  }
?>

ここで設定ファイルの場所を取得するためにhome変数を使用しているため
rcube_pluginクラスのコンストラクタを呼び出していないと設定ファイルを取得出来なくなります。

Facebooktwitterlinkedintumblrmail

Roundcubeプラグインからメール送信

Roundcubeプラグインからメール送信出来たら、色々な可能性が広がるので調べてみました。

ソースは以下のようになります。

rc = rcmail::get_instance();

//ローカライズ対応
$this->add_texts('localization/');
        
//タスクとしてsampleを設定
$this->register_task('sample');
        
//タスクバーにボタンを追加
$this->add_button(array(
'command'    => 'sample',
'label'      => 'sample.sample',
), 'taskbar');

//sampleタスクの場合のみ、アクションのコールバックを登録
if($this->rc->task == 'sample'){
$this->register_action('index', array($this, 'index'));
$this->register_action('send_mail', array($this, 'send_mail'));
}
}

public function index(){
$this->rc->output->send('sample.index');
}

public function send_mail(){
global $CONFIG;
$message_charset = $this->rc->output->get_charset();//rcube_html_pageオブジェクトの持っている、charsetを取得します。
$flowed = $this->rc->config->get('send_format_flowed', true);

$from = 'foo@roundcube.com';
$to = 'bar@roundcube.com';

$headers = array(
'Date' => rcmail_user_date(),
'From' => $from,
'To' => $to,
'Message-ID' => rcmail_gen_message_id(),
'User-Agent' => $CONFIG['useragent'],
'Subject' => 'テストメール',
'X-Sender' => $to,
);
$mail_mime = new Mail_mime("\r\n");
$mail_mime->headers($headers);

//$mail_mime->setTXTBody('こんにちは');
$mail_mime->setHTMLBody('こんにちは');

//ASCII文字か判定
if (preg_match('/[^\x00-\x7F]/', $mail_mime->getTXTBody())){
$transfer_encoding = $this->rc->config->get('force_7bit') ? 'quoted-printable' : '8bit';
}else{
$transfer_encoding = '7bit';
}

//文字コードなどヘッダフィールドの設定
$mail_mime->setParam('text_encoding', $transfer_encoding);
$mail_mime->setParam('html_encoding', 'quoted-printable');
$mail_mime->setParam('head_encoding', 'quoted-printable');
$mail_mime->setParam('head_charset', $message_charset);
$mail_mime->setParam('html_charset', $message_charset);
$mail_mime->setParam('text_charset', $message_charset . ($flowed ? ";\r\n format=flowed" : ''));

//ヘッダ情報の配列をテキスト形式に変換します。
$smtp_headers = $mail_mime->txtHeaders($headers, true);

if (!is_object($this->rc->smtp)){
//rcmailオブジェクトにrcube_smtpクラスのオブジェクトがない場合、生成します。
$this->rc->smtp_init(true);
}

//メールを送信します。
$sent = $this->rc->smtp->send_mail($from, $to, $smtp_headers, $mail_mime->getMessageBody());

//必要な場合以下の情報で後処理をする。
//$smtp_response = $this->rc->smtp->get_response();
//$smtp_error = $this->rc->smtp->get_error();

//元の画面を再表示
$this->index();
}

}

/roundcuberoot/program/steps/mail/sendmail.incを参考に作成しています。
この内容でほとんどのメールは送信可能かと思います。
添付ファイルをつけたメール送信や画像を含んだメールなどはさらに処理が必要になります。

Facebooktwitterlinkedintumblrmail

Roundcubeプラグインの作り方② ~画面のあるプラグイン編~

今回は、Roundcubeプラグインとして、画面のあるプラグインの作り方を紹介します。

まず、初めにフォルダ構成は以下のようになります。

ソースの内容は以下のようになります。
sample.php

rc = rcmail::get_instance();
        
        //ローカライズ対応
        $this->add_texts('localization/');
        
        //タスクとしてsampleを設定
        $this->register_task('sample');
        
        //タスクバーにボタンを追加
        $this->add_button(array(
            'command'    => 'sample',
            'label'      => 'sample.sample',
        ), 'taskbar');
        
        //sampleタスクの場合のみ、アクションのコールバックを登録
        if($this->rc->task == 'sample'){
            $this->register_action('index', array($this, 'index'));
            $this->register_action('test', array($this, 'test'));
        }
        
    }
    
    public function index(){
        $this->rc->output->send('sample.index');
    }
    
    public function test(){
        $this->rc->output->send('sample.test');
    }
    
}

index.html




<roundcube:object name="pagetitle" />




    
    
    
初期画面

test.html




<roundcube:object name="pagetitle" />




    
    
    
テスト画面

ja_JP.inc


この状態でこのように動きます。
初期画面

テスト画面

ここからはソースの説明になります。

①全てのリクエストは、プラグインクラスが受け付けます。
  プラグインクラスとは、rcube_pluginを継承したクラスになります。
  今回の場合、sampleクラスになります。

②タスクとアクション
  Roundcubeにはタスクとアクションの概念があります。
  1つのプラグインの中に1つのタスクがあり、複数のアクションがあるイメージになります。
  今回の場合は、sampleタスクの中にindexアクションとtestアクションがある状態になります。

  例えば、「http://roundcube.com/?_task=sample&_action=test」のようにアクセスすると
  タスクはsampleで、アクションはtestという指定で動作します。
  「http://roundcube.com/?_task=sample」このようなURLの場合
  アクションは何もついていませんので、indexというアクションが自動的に付加されます。

③rcmailオブジェクト

$this->rc = rcmail::get_instance();

  Roundcubeの様々な情報を持っているオブジェクトになります。
  ここにタスクとアクションの情報も入っていますので、メンバ変数に保持します。

④コールバックの登録
  あるアクションが指定されたときに、どのメソッドがコールされるかを登録します。

    $this->register_action('index', array($this, 'index'));
この場合はindexというアクションが指定されたら、
$thisの中にあるindexメソッドをコールするという登録方法になります。

⑤テンプレート表示

    $this->rc->output->send('sample.index');
上記のように記述することで、sampleタスク内にあるindex.htmlを表示するようにします。
Facebooktwitterlinkedintumblrmail

RoudcubeプラグインでAjaxする

RoudcubeプラグインでAjaxする方法を紹介します。

サーバ側:

rc = rcmail::get_instance();

$this->add_texts('localization/');
$this->register_task('ajax_sample');

if($this->rc->task == 'ajax_sample'){
$this->register_action('index', array($this, 'action'));
$this->register_action('get_data', array($this, 'action'));
}else{
$this->add_button(array(
'command' => 'ajax_sample',
'label' => 'ajax_sample.title'
), 'taskbar');
}
}

public function action(){
//画面表示
if($this->rc->action === 'index'){

$this->include_script('ajax_sample.js');
$this->rc->output->send('ajax_sample.ajax_sample');

//ajax
}else if($this->rc->action === 'get_data'){

error_log(get_input_value('data', RCUBE_INPUT_POST));
$this->rc->output->command('plugin.get_data', array('data' => 'test'));

}
}

}

クライアント側:

var get_data_call_back = function(response){
console.log(response.data);
}

if (window.rcmail) {
rcmail.addEventListener('init', function() {
rcmail.addEventListener('plugin.get_data', get_data_call_back);
rcmail.enable_command('get_data', true);
});
}

rcube_webmail.prototype.get_data = function()
{
rcmail.http_post('get_data',{"data":'test'});
}

①コールバックの登録
  クライアント側のrcmail.addEventListener(‘plugin.get_data’, get_data_call_back);の
  第一引数と
  サーバ側の$this->rc->output->command(‘plugin.get_data’, array(‘data’ => ‘test’));の
  第一引数を
  一致させる必要があります。

  この際に’plugin.’という文字を前につける必要があります。
  なぜなら/roundcuberoot/program/include/rcube_json_output.phpの
  141行目が次のようになっています。

    public function command()
    {
        $cmd = func_get_args();

        if (strpos($cmd[0], 'plugin.') === 0)
          $this->callbacks[] = $cmd;
        else
          $this->commands[] = $cmd;
    }

  ここでcallbacksに登録されないため

  /roundcuberoot/program/js/app.src.jsの6041行目

    // execute callback functions of plugins
    if (response.callbacks && response.callbacks.length) {
      for (var i=0; i < response.callbacks.length; i++)
        this.triggerEvent(response.callbacks[i][0], response.callbacks[i][1]);
    }

  この部分のコールバックとして実行されません。

②ポストするデータ
  rcmail.http_post('get_data',{"data":'test'});の第二引数で指定します。

③サーバから返すデータ
  $this->rc->output->command('plugin.get_data', array('data' => 'test'));の第二引数で指定します。

Facebooktwitterlinkedintumblrmail

Roundcubeのボタンの使い方

Roundcubeのボタンの使い方を紹介します。

①テンプレートへの設置方法は以下のようになります。


このように書いておくと、次のように出力されます。


②イベントをどう処理するか?

このように書きます。

if (window.rcmail) {
rcmail.addEventListener('init', function() {
rcmail.enable_command('get_data', true);
});
}

rcube_webmail.prototype.get_data = function()
{
console.log('get_data');
}

③rcmail.enable_command(‘get_data’, true);の
 最後の引数でそのボタンを有効にするか無効にするか指定します。
  試しに2つのボタンを設置してみます。



デフォルトではどちらも無効になります。

次のようにjavascriptを記述します。

if (window.rcmail) {
rcmail.addEventListener('init', function() {
rcmail.enable_command('btn1', true);
rcmail.enable_command('btn2', false);
});
}
rcube_webmail.prototype.btn1 = function()
{
console.log('btn1');
}
rcube_webmail.prototype.btn2 = function()
{
console.log('btn2');
}

ボタンは2つとも見かけ上有効になります。
しかし、ボタン1をクリックするとコンソールに’btn1’が表示されますが、ボタン2をクリックしても何も起こりません。

④引数を渡すにはどうするか。

prop属性を指定します。
このように書くと


次のように出力してくれます。


  rcmail.command(‘btn1′,’test’,this)この部分の第二引数にpropで指定した値が入ってきます。

  javascript側では第一引数で取得します。

rcube_webmail.prototype.btn1 = function(value)
{
console.log(value);
}

上記のように記述するとコンソールに’test’と表示されます。

⑤複数の引数を指定出来るか。

ボタンのclick処理を出力するのは
/roundcuberoot/program/include/rcube_template.phpの978行目の以下のコードになります。

$attrib['onclick'] = sprintf(
"return %s.command('%s','%s',this)",
JS_OBJECT_NAME,
$command,
$attrib['prop']
);

上記のコードの通り、複数の引数を指定することは無理そうですね・・。

Facebooktwitterlinkedintumblrmail

Roundcubeプラグインの作り方

①プラグインは roundcuberoot/plugins配下に作成します。
 (既にたくさん入っているようです。)

②作成したディレクトリ名と同じ名前のphpファイルを作成します。

③②で作成したphpファイルと同じ名前のクラス名にします。
④作成したクラスはrcube_pluginクラスを継承しなければなりません。


⑤プラグインクラス(/roundcuberoot/program/include/rcube_plugin.php)の
 抽象メソッドであるinitメソッドをオーバーライドします。

abstract function init();

 initメソッドは必須になります。

 プラグインAPIクラス(/roundcuberoot/program/include/rcube_plugin_api.php)は、
 プラグインオブジェクトをインスタンス化し、initメソッドを呼び出します。


これで何にもしないプラグインは出来上がりです。

⑥でも、これだと出来たかどうかわからないのでタスクバーにボタンを追加します。

add_texts('localization/');
        
        $this->add_button(array(
                'command'    => 'sample',
                'label'      => 'sample.sample',
        ), 'taskbar');
    }
}

⑦ja_JP.incファイル


以下のように配置します。

⑧最後に/roundcuberoot/config/main.inc.phpに
 プラグインを登録します。

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

これでサンプルメニューのプラグインの出来上がりです。

Facebooktwitterlinkedintumblrmail

Roundcubeのプラグインを、プラグインマネージャからダウンロードする

Roundcubeのプラグインをダウンロードする際、プラグインマネージャを使用すると
必要なプラグインを選択し、最新のものをダウンロードすることができます。

プラグインマネージャの主な機能

・簡易プラグインの配布
・プラグインのアップデート
・プラグインの関連情報
・アカウント設定に関するユーザレベルの制御
・Roundcubeデータベースの整理
・統一されたローカライゼーションの公開および配布
・ローカライゼーション翻訳の完全追跡
・プラグインのシステムの問題を報告
・リリースノートとドキュメントリンク

新しいスキンに対応したものが多いので、簡単に使用することが出来ます。

プラグインマネージャのダウンロード

プラグインマネージャの使用開始時には、他のプラグインを使っていないことが前提です。
プラグインマネージャの他に、以下のプラグインが必要になります。
・global_alias
・http_request
・jqueryui
・qtip
・settings

全て一緒に、こちらからダウンロード出来ます。
http://myroundcube.com/myroundcube-plugins/plugin-manager


ダウンロードが完了したら、プラグインディレクトリを指定し、フォルダを解凍します。
ディレクトリの場所はこちら。

<ルートディレクトリ>/roundcube/plugin

プラグインマネージャの設定

“config.inc.php.dist” ファイルのコピーを作成し、”config.inc.php” にリネームします。
コピーしたプラグインマネージャの ”config.inc.php” ファイルをテキストエディタで編集します。

<ルートディレクトリ>/roundcube/plugin/plugin_manager/comfig.in.php

管理者アカウントを追加します。(アカウントは複数追加できます。)

1
2
3
4
//管理者のアカウントを追加
$rcmail_config['plugin_manager_admins'] = array('admin1@mydomain.tld','admin2@mydomain.tld');$rcmail_config['plugin_manager_admins'] = array('<管理者のアカウント(メールアドレス)を記入>');

“main.inc.php”ファイルに、”plugin_manager”を追記します。

1
2
3
4
//プラグインマネージャを追加
$rcmail_config['plugins'] = array();$rcmail_config['plugins'] = array('plugin_manager');

一緒にダウンロードされた、以下のヘルパープラグインも同様にプラグインの設定を行って下さい。
・global_alias
・http_request
・jqueryui
・qtip
・settings

Roundcubeにログインし、設定をクリックすると”Manage Plugins”という項目が追加されます。


“Manage Plugins” 下の ”Pulugins Dounloads” をクリックし、Roundcubeのバージョンを選択します。
私の場合は、 ”Download plugins for Roundcube 0.8.4″ を選択し、”I agree”(同意する) をクリックします。


ここまで進むと、以下のように表示されます。
色がついているプラグインは有料です。


必要なプラグインにチェックを入れて、”Download Zip-Archive”ボタンをクリックすると
Zipファイルがダウンロードされます。

ダウンロードが完了したら、Zipファイルをプラグインディレクトリに解凍し
それぞれプラグインの設定を行います。

試しに、”compose_in_taskbar” を入れてみます。
特に難しい設定はないので、すぐに使用することができます。


タスクバーに、メッセージの新規作成ボタンを追加するプラグインです。
もちろんクリックすると、メッセージが新しく作成されます。

他にも様々な機能のプラグインが配布されているので、自分好みの機能を追加して
使いやすくカスタマイズすると、楽しいですね♪

Facebooktwitterlinkedintumblrmail

Roundcubeにプラグインを追加する

前回はRoundcubeのインストール&設定を行ったので、
本来の目的である、プラグインを試用していきたいと思います。

公式サイトのwikiに、使用可能なプラグインと設定の手順が載っていました。
http://trac.roundcube.net/wiki/Plugin_Repository

英語は得意ではないですが(;´Д`)カタコトなGoogle翻訳機能様を頼りつつ
なんとか読み解いて、探り探りやっていきました。

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

プラグインをインストールし、有効化します。

1、プラグインをダウンロードします。
2、プラグインディレクトリを指定し、フォルダを解凍します。

プラグインディレクトリの場所は以下になります。

<ルートディレクトリ>/roundcube/plugins/

3、解凍したフォルダの中に”config.inc.php.dist”ファイルが存在する場合は
コピーを作成し、”config.inc.php”にリネームします。
“config.inc.php.dist”ファイルに直接書き込まないよう気を付けて下さい。

“README”ファイルが存在し、設定の手順が載ってある場合は
手順に従い、設定を行って下さい。

4、’main.inc.php’ファイルに、追加したプラグインのディレクトリ名を追記します。
配列に列挙されたプラグインだけが有効になります。

‘main.inc.php’ファイルをテキストエディタで編集します。

<ルートディレクトリ>/roundcube/config/main.inc.php
//'additional_message_headers'と'archive'を追加
$rcmail_config['plugins'] = array();
// ↓
$rcmail_config['plugins'] = array('additional_message_headers', 'archive');

プラグインを無効にしたい場合は、リストから削除します。

//'additional_message_headers'を削除
$rcmail_config['plugins'] = array('additional_message_headers', 'archive');
// ↓
$rcmail_config['plugins'] = array('archive');

5、WEBブラウザからRoundcubeにアクセス、または更新を行い、追加した機能を確認します。

以上の設定を行えば、簡単に機能を追加することが出来ます。

ヘルプ機能を追加

Roundcubeをインストールした際、既にプラグインがいくつか入っていたので
試しにヘルプ機能を追加してみることにしました。

タスクバーにヘルプが追加されたので、クリックしてみると・・・

ヘルプのリンク先を指定してないので、何も表示されません。
“config.inc.php”ファイルを確認します。

<ルートディレクトリ>/roundcube/plugins/help/config.inc.php

ヘルプのリンク先を設定します。
特にページを作っていなかったので、Roundcubeの公式WikiのURLを指定しました。

//helpのリンク先を指定
$rcmail_config['help_source'] = '';
// ↓
$rcmail_config['help_source'] = 'http://trac.roundcube.net/wiki';

設定が済んだらページの更新を行い、ヘルプの内容が変更されているか確認します。

“larry”用のスキンも用意されていたので、レイアウトもバッチリです(´∀`)

Facebooktwitterlinkedintumblrmail

Roundcubeをインストール&設定してみました

弊社でカスタマイズ&運用サポートを行っております、
高機能WebメールRoundcube!!
業種や用途等に合わせて、自由にカスタマイズできるのが特徴です。

そのままでも使用できますが、それでは普通のWebメールと変わらず(;´Д`)
どうやらプラグインを使えば、簡単に色んな機能が追加できるようなので
さっそくRoundcubeをインストールしてみることに。

とりあえず簡単にプラグインを突っ込んで試してみたいだけなので、
下記のサイトを参考にさせていただきました。感謝です!
http://pnpk.net/cms/archives/650/all/1

ローカルでメールクライアントを構築し、Gmailを利用します。
あくまで簡単に簡単に(^_^;)

GmailでIMAPを利用する場合、Gmailの設定画面で事前に
IMAP経由でのメール受信を有効にしておく必要があります。
RoundCubeでGmailを受信する場合には、
Gmailログイン“設定”“メール転送とPOP/IMAP 設定”“IMAPアクセス”
“IMAPを有効にする” にチェックをしておいてください。

Roundcubeをダウンロード

http://roundcube.net/ からRoundcubeをダウンロードします。
今回は0.8.4を選びましたが、最近0.9-beta版が出たようですね~。

Apacheのドキュメントルートにフォルダを解凍し、フォルダ名を”roundcube”にリネームしました。
私の環境ではココです。

C:/Apache/htdocs

動作環境については、roundcubeフォルダにあるINSTALLファイル内で
REQUIREMENTS(必要条件)と記述してありました。
確認確認~(´∀`)~♪

* The Apache, Lighttpd, Cherokee or Hiawatha web server 
* .htaccess support allowing overrides for DirectoryIndex 
* PHP Version 5.2.1 or greater including
    - PCRE, DOM, JSON, XML, Session, Sockets (required)
    - libiconv (recommended)
    - mbstring, fileinfo, mcrypt (optional)
 * PEAR packages distributed with Roundcube or external:
    - MDB2 2.5.0 or newer    - Mail_Mime 1.8.1 or newer
    - Mail_mimeDecode 1.5.5 or newer
    - Net_SMTP 1.4.2 or newer
    - Net_IDNA2 0.1.1 or newer
    - Auth_SASL 1.0.6 or newer * php.ini options (see .htaccess file):
    - error_reporting E_ALL & ~E_NOTICE (or lower)
    - memory_limit > 16MB (increase as suitable to support large attachments)
    - file_uploads enabled (for attachment upload features)
    - session.auto_start disabled
    - zend.ze1_compatibility_mode disabled
    - suhosin.session.encrypt disabled
    - mbstring.func_overload disabled
    - magic_quotes_runtime disabled
    - magic_quotes_sybase disabled
 * PHP compiled with OpenSSL to connect to IMAPS and to use the spell checker
 * A MySQL (4.0.8 or newer), PostgreSQL, MSSQL database engine   or the SQLite extension for PHP
 * One of the above databases with permission to create tables
 * An SMTP server (recommended) or PHP configured for mail delivery

私の環境は、ざっとですが以下のとおりです。
・OS Windows7
・PHP Version 5.3.13
・Apache/2.2.22
・mysqlnd 5.0.8

ドキュメントルートにRoundcubeを入れておくと、こちらから設定が確認できるようです。
http://localhost/roundcube/installer/
設定出来ていれば”OK“の表示が!!

次にtemp、logsフォルダに書き込み権限を付与します。
設定方法は、こちらに詳しく書いてありました。
http://technet.microsoft.com/ja-jp/windows/ff189334.aspx

php.iniを編集

RoundCubeを動作させるために”php.ini”の内容を一部変更します。

//先頭の;を外す
extension=php_fileinfo.dll
//先頭の;を外す
extension=php_openssl.dll

私の場合、”php.ini”内に”extension=php_fileinfo.dll”の記述がなく
書いてるのと違う!どうしてくれんだ!!と焦りましたが
ちゃんと存在しました(;´∀`)

拡張モジュールは”php”フォルダの中の”ext”に収められています。
私の環境ではココです。

C:/PHP/ext

“php.ini”に”extension=php_openssl.dll”の記述を追加し、
設定を反映させるため、保存完了後、Apacheを再起動します。

Roundcubeに利用するデータベースを作成

私はphpmyadminを使用しました。
以下手順です。

1、WEBブラウザでhttp://localhost/phpmyadmin/にアクセスします
2、上部の”SQL”タブをクリックします
3、”サーバ上でクエリを実行する”に以下のコマンドを入力します

-- データベースの追加(データベース'roundcubemail'をUTF-8で作成)
CREATE DATABASE roundcubemail DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
-- ユーザの追加(ユーザ'roundcube@localhost'をパスワード'roundcube'で作成)
CREATE USER 'roundcube'@'localhost' IDENTIFIED BY 'roundcube';
-- アクセス権限の追加(データベース'roundcubemail'に対してユーザ'roundcube@localhost'に適用可能な権限すべてを一度に付与)
GRANT ALL PRIVILEGES ON roundcubemail.* TO roundcube@localhost IDENTIFIED BY 'roundcube';

4、右下の”実行”をクリックします
5、特に問題がなければ、”SQL は正常に実行されました”と表示されます

テーブルを作成

データベーステーブルを作成します。
以下手順です。

1、左部のデータベース一覧から”roundcubemail”を選択
2、上部”インポート”タブを選択
3、以下のファイルを読み込む

&lt;ルートディレクトリ&gt;/roundcube/SQL/mysql.initial.sql

インポートが完了すると、テーブルが12個新規作成されます。

Roundcubeの初期設定を行う

ここまで準備が整ったら、WEBブラウザ経由で以下のURLにアクセスし、初期設定を行います。
http://localhost/roundcube/installer/

動作するのに必須な項目が、すべて”OK“であれば問題無いようです。
最下部の”NEXT”をクリックして先に進みます。


それ以外の”NOT AVAILABLE“等になっている場合は、phpinfoを確認し、
コンポーネントが有効になっているか確認します。
設定は後からでも出来るので、特に何も設定しませんでした。

そのまま”CREATE CONFIG”をクリックすると、
main.inc.phpとdb.inc.phpの設定が、自動的に作成されます。

 main.inc.php (download)
 db.inc.php (download)

downloadをクリックして、それぞれ設定ファイルを
以下の場所に保存します。

&lt;ルートディレクトリ&gt;/roundcube/config

CONFIGファイルの編集
直接テキストエディタでファイルを編集します。
Gmailを利用した場合の設定です。

“main.inc.php”の設定

//IMAPサーバの指定
$rcmail_config['default_host'] = '';
↓
$rcmail_config['default_host'] = 'ssl://imap.gmail.com:993';
//IMAPサーバ接続ポートの変更
$rcmail_config['default_port'] = 143;
↓
$rcmail_config['default_port'] = 993;
//SMTPサーバの指定
$rcmail_config['smtp_server'] = '';
↓
$rcmail_config['smtp_server'] = 'ssl://smtp.gmail.com';
//SMTP接続ポートの変更
$rcmail_config['smtp_port'] = 25;
↓
$rcmail_config['smtp_port'] = 465;
//SMTPログインユーザの指定 
$rcmail_config['smtp_user'] = '';
↓
$rcmail_config['smtp_user'] = '%u';
//SMTPパスワードの指定 
$rcmail_config['smtp_pass'] = '';
↓
$rcmail_config['smtp_pass'] = '%p';

“db.inc.php”の設定

//SMTPパスワードの指定 
$rcmail_config['db_dsnw'] = 'mysql://roundcube:pass@localhost/roundcubemail';
↓
//データベースのユーザ名とパスワードを入力
$rcmail_config['db_dsnw'] = 'mysql://root(ユーザ名):******(パスワード)@localhost/roundcubemail';

RoundCubeにログインする
http://localhost/roundcube/ にアクセスすると、RoundCubeのTOPページが表示されます。

ここで指定するログイン名は、実際のメールサーバのユーザー名とパスワードになります。
Gmailアカウントでログインする場合にはユーザー名にメールアドレス(xxxx@gmail.com)と、
パスワードを入力します。


問題なくログインできたら、不要になったinstallerフォルダの削除を行います。
以下を、フォルダごと削除して下さい。

&lt;ルートディレクトリ&gt;/roundcube/installer

以前試みた時には、うまくいかず断念しましたが、今回はなぜかスムーズに進みました。
大したことはしてませんが、動いてる感があるのでなんだか嬉しいです!


オリジナル感を出したいのでマークをねこちゃんに(笑)
可愛い可愛い(´∀`)ふふふ
スキンを自分好みに変えれるのは嬉しいですね~。

次は、プラグインを入れていきたいと思います。

Facebooktwitterlinkedintumblrmail