文/玄魂
前言
在上篇文章(使用hMailServer搭建郵件服務器)中,介紹了hMailServer的安裝和簡單配置。
除了郵件客戶端之外,web郵件系統在很多時候還是必須的,比如修改密碼,在移動端查看郵件等。
Roundcubemail是一個免費、開源的php開發的web mail 系統。本文介紹如何將Roundcubemail與hMailServer集成起來。
1.1 下載與安裝
可以在http://roundcube.net/download/選擇合適的版本下載,也可以在GitHub(https://github.com/roundcube/roundcubemail)下載最新版。
下載之后,將壓縮包解壓到磁盤。
配置web服務器來承載站點,因為是php站點,一般會使用apathe或者nginx,我這里使用的是iis,配置過程就不做說明了。
站點配置好之后,訪問站點installer目錄下的index.php文件,進入安裝界面。
安裝界面第一步是檢測環境是否符合要求,如果沒有問題,點擊“下一步”。
第二步是基本配置。
基本配置
“product_name”是郵件系統的展示名稱,顯示在網頁的Title上,自行配置即可。
“support_url”,系統的技術支持頁面,也可以填寫mailto鏈接。
“skin_logo”,自定義企業logo,用以替代系統默認的logo。
“temp_dir”,臨時文件的存放路徑,必須保證有寫權限。
“des_key“,加密密碼的key。
“ip_check“,session校驗時同時校驗ip是否匹配,屬於增強的安全特性,選擇該選項,客戶端如果ip地址變更,會導致用戶突然退出。
“enable_spellcheck“,是否啟用拼寫檢查。
“spellcheck_engine“,拼寫檢查引擎。
“identities_level“,定義用戶權限。
“debug_level“,調試信息級別。
“log_driver“,日志記錄方式。
“log_dir”,日志記錄文件存儲路徑。
“syslog_id”,如果選擇日志記錄的方式為系統日志,該選項有效,為郵件系統的系統日志分配id。
“syslog_facility”,系統日志等級,如果選擇日志記錄的方式為系統日志,該選項有效。
數據庫配置
接下來再數據庫安裝配置組中配置數據庫類型,數據庫服務器地址,數據庫名稱、用戶名、密碼。
IMAP Settings
這里的配置可以參考hMailSer的參數。
“default_host”:默認登錄域名。
“default_port”:默認端口,一般為143。
“username_domain”,郵件@符號后面的域名。
其他選項默認即可。
SMTP Settings
smtp_server:smtp服務器地址。
smtp_port:填寫hMailServer中的配置,默認為25.
smtp_user/smtp_pass:smtp驗證的用戶名密碼,根據實現需要填寫。
Display settings & user prefs
顯示設置和用戶使用相關設置部分。
“language”:設置語言。
“skin”,選擇站點的皮膚。
“mail_pagesize”:郵件列表頁,每頁顯示的條目數。
“addressbook_pagesize”:地址簿每頁的條目數。
“prefer_html”:是否顯示html內容。
“preview_pane”:是否預覽。
“htmleditor”:使用html編輯器的規則。
“draft_autosave”:設置自動保存規則。
Mime_param_folding,最好設置成如下圖所示,否則可能會產生亂碼。
配置完畢之后,點擊“Create Config”。
下載生成的兩個文件,拷貝到config文件夾下。
點擊“continue”。
安裝數據庫
點擊Initalize DataBase,初始化數據庫。
測試成功之后,刪除installer文件夾。
1.2 安裝插件
Roundcubemail 以插件的形式支持擴展,本身自帶了幾十種插件在plugins目錄下:
添加修改密碼插件
現打開main.inc.php 文件,搜索“$rcmail_config['plugins']”,找到:
// List of active plugins (in plugins/ directory)
$rcmail_config['plugins'] = array();
這里我想添加修改密碼功能,修改代碼如下:
// List of active plugins (in plugins/ directory)
$rcmail_config['plugins'] = array("password");
修改數據庫連接串
進入“plugins\password”目錄,復制一份config.inc.php.dist文件,修改為config.inc.php,搜索“$rcmail_config['password_db_dsn']”,修改為:
$rcmail_config['password_db_dsn'] = 'mysql://root:yourpassword@localhost/hmailserver';
參數說明:
@mysql:因為roundcube我用的mysql作為數據存儲
@root:訪問數據庫的用戶(需要具有可讀寫權限)
@youpassword:密碼,即你訪問數據庫的用戶密碼;我的root用戶密碼為111111 故為:$rcmail_config['password_db_dsn'] = 'mysql://root:111111@localhost/hmailserver';
@localhost:本地訪問
@hmailserver:安裝hmialserver時的數據庫名稱;默認的是hmail 我更名為hmailserver
功能:即鏈接hmailserver數據庫
修改更新密碼的sql語句
搜索“$rcmail_config['password_query'] ”,找到如下代碼:
'SELECT update_passwd(%c, %u)'
修改為:
$rcmail_config['password_query'] = 'UPDATE hm_accounts
SET accountpassword=md5(%p),accountpwencryption = 2
WHERE accountaddress=%u
LIMIT 1';
這就是一條簡單的update語句,只是密碼采用了md5加密;accountpwencryption = 2 表示MD5加密算法;( 不要寫錯了)
%p表示傳入的新密碼
%u表示用戶名
刷新頁面,我們看到頁面里有了密碼模塊,可以修改密碼了。