推一下 RoundCube WebMail Password Plugin

這一篇是記錄一下當 Mail Server 是採用 postfix + mysql 認證時 , 如何設定 RoundCube 的改密碼 plugin

平台是 CentOS 5.3 + mysql 5.1 + postfix_mysql + roundcube 0.3 stable

設定方法很簡單

先找到 roundcube 安裝目錄下的 plugins/password 這個目錄

把 config.inc.php.dist 改成 config.inc.php 或用複製成另一個新檔都可以 , 然後要修改 config.inc.php

我們必須先修改以下三個參數

  • $rcmail_config[‘password_driver’] : 這個是設定密碼密碼認證的方式
  • $rcmail_config[‘password_db_dsn’]  : 這個是設定 posftix 認證的資料庫連接資訊(注意!不是roundcube資料庫喔)
  • $rcmail_config[‘password_query’] : 這是設定修改密碼的 SQL Query

$rcmail_config[‘password_driver’] 必須設定為 sql , 才適用 mysql 的方式 , 例如

$rcmail_config['password_driver'] = 'sql';

$rcmail_config[‘password_db_dsn’] 的格式是 PEAR DSN 的格式 , 例如

$rcmail_config['password_db_dsn'] = 'mysql://postfix:[email protected]/postfix';

 

然後 $rcmail_config[‘password_query’] 以我的範例是這麼寫的

$rcmail_config['password_query'] = "UPDATE mailbox SET password=ENCRYPT(%p,concat(_utf8'\$1\$',right(md5(rand()),8),_utf8'\$')) WHERE username=%u LIMIT 1";

這段 SQL , 必須要看 postfix mysql 是怎麼設定的 , 我的用戶資料都放在 mailbox 表格 , 而且用的是 md5 salt 編碼

RoundCube 還支援很多種方式 ,  可以參考 plugins/password 下的 README , 裡面也有 pgsql 的範例

 

最後 , 修改 roundcube 安裝目錄下的 config/main.inc.php

修改一行 $rcmail_config[‘plugins’]

我是寫成

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

這代表只載入 password 這個 plugin

就這麼簡單 , 修改完後 , 去登入 roundcube , 就多了一個改密碼的功能了 , roundcube 這套 web mail 真的很好用 , web 2.0 介面 , 用力推 ~

發佈留言