這一篇是記錄一下當 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:1234@localhost/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 介面 , 用力推 ~