RoundCubeとの連携

WEBメーラーのRoundCube
別のシステムのリンクから、自動でログインするようにカスタマイズしてみました。
参考までに。

RoundCube - index.phpの変更 アクションやタスクではなくセッション情報を元に ログインしているかどうかを判断させるように変更 (自動ログインとは関係ありません。)
1
2
3
4

// try to log in
//if ($RCMAIL->action=='login' && $RCMAIL->task=='mail') {
if (!isset($_SESSION['user_id'])) {

※この改変は、自己責任で行ってください。システムに支障がでても私は一切責任を負いません
RoundCube自動ログイン

RoundCubeへのリンクが設定されているページで
Ajaxを用いてバックグラウンドでRoundCubeのログイン処理をあらかじめ実行する。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

<script type="text/javascript" charset="utf-8" src="javascript_dir/jquery.js"></script>
<script type="text/javascript">
$j(document).ready(function() {
// バックグラウンドでroundcubeへの自動ログインを実行
$j.ajaxSetup({async : false});
$j.post(
'roundcube_path/index.php?_action=login'
, {
_action : 'login'
, _user : 'hogehoge'
, _pass : 'hogehoge'
, _host : 'hogehoge'
});
});
</script>

*起動用のリンク *

1
2
3
4

<a href="roundcube_path/index.php?_task=mail">RoundCube起動</a>
<a href="roundcube_path/index.php?_action=compose&_task=mail">メール作成画面起動</a>
<a /mail/?_action=compose&_task=mail&_to=hoge@exsample.com&_subject=hogehoge">メール作成画面起動(To、Subject指定)</a>