HMAILSERVER集成WEB邮件系统(ROUNDCUBE WEBMAIL)
hMailServer集成web邮件系统(Roundcube Webmail)
文/玄魂
前言
在上篇文章(使用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表示用户名
刷新页面,我们看到页面里有了密码模块,可以修改密码了。
HMAILSERVER集成WEB邮件系统(ROUNDCUBE WEBMAIL)的更多相关文章
- Postfix 邮件服务 - roundcube webmail
roundcubemail作为web端的邮件客户端.是一个基于浏览器,支持多国语言的IMAP客户端,它的操作界面看起像一个桌面应用程序.它提供一个email客户端应该具备的所有功能,包括MIME支 ...
- 调整iRedmail之Roundcube webmail服务不可不知的几件事
iRedMail集成了roundcube webmail,极大的方便了安装维护工作,但是需求是千遍万化的,总有需要深入调整的地方.下面就是我调整roundcube时遇到的几点问题: 一.修改网页标题p ...
- ABP入门系列——使用ABP集成的邮件系统发送邮件
ABP中对邮件的封装主要集成在Abp.Net.Mail和Abp.Net.Mail.Smtp命名空间下,相应源码在此. #一.Abp集成的邮件模块是如何实现的 分析可以看出主要由以下几个核心类组成: E ...
- idea/eclipse下Maven工程集成web服务(tomcat、jetty)
idea/eclipse下Maven工程集成web服务 转载请注明出处:http://www.cnblogs.com/funnyzpc/p/8093554.html 应用服务器最常用的一般有这哥仨: ...
- Roundcube Webmail信息泄露漏洞(CVE-2015-5383)
Preface Software: https://roundcube.net/Versions: 1.1.x<1.1.2(亲测1.1.5也有效)CVE: CVE-2015-5383Author ...
- Roundcube Webmail跨站脚本漏洞(CVE-2015-5381 )
Preface Software: https://roundcube.net/Versions: 1.1.x<1.1.2CVE: CVE-2015-5381Author: sroesemann ...
- Roundcube Webmail File Disclosure Vulnerability(CVE-2017-16651)
Preface Software: https://roundcube.net/ Versions: 1.1.0 - 1.1.9, 1.2.0 - 1.2.6, 1.3.0 - 1.3.2 CVE: ...
- ABP入门系列(17)——使用ABP集成的邮件系统发送邮件
ABP中对邮件的封装主要集成在Abp.Net.Mail和Abp.Net.Mail.Smtp命名空间下,相应源码在此. #一.Abp集成的邮件模块是如何实现的 分析可以看出主要由以下几个核心类组成: E ...
- Shiro集成web环境[Springboot]-认证与授权
Shiro集成web环境[Springboot]--认证与授权 在登录页面提交登陆数据后,发起请求也被ShiroFilter拦截,状态码为302 <form action="${pag ...
随机推荐
- samtools
samtools 用法 samtools <command> [options] command 见以下列表, 每个 command 的 options 也不同 dict faidx in ...
- angular2在双向数据绑定时[(ngModel)]无法使用的问题
angular2在双向数据绑定时[(ngModel)]无法使用,出现的错误是: Can't bind to 'ngModel' since it isn't a known property of ' ...
- 学习selenium的过程
- 在离线安装gazebo的时候可能在运行turtlebot_gazebo的时候会出现问题
问题显示如下 gzserver: /build/ogre-1.9-mqY1wq/ogre-1.9-1.9.0+dfsg1/OgreMain/src/OgreRenderSystem.cpp:546: ...
- [Oracle]ORA-14400:插入的分区关键字未映射到任何分区
今天在使用测试库的时候发生ORA-14400:inserted partition key does not map to any partition 解决过程: 经过百度,发现出现ORA-14400 ...
- mysql 数据插入优化方法(concurrent_insert=2)
当一个线程对一个表执行一个DELAYED语句时,如果不存在这样的处理程序,一个处理器线程被创建以处理对于该表的所有DELAYED语句.通常来说,在MyISAM里读写操作是串行的,但当对同一个表进行查询 ...
- Query - noConflict() 方法
ps:菜鸟教程 如何在页面上同时使用 jQuery 和其他框架? noConflict() 方法会释放对 $ 标识符的控制,这样其他脚本就可以使用它了. 当然,您仍然可以通过全名替代简写的方式来使用 ...
- JSON_FORCE_OBJECT 数字索引数组 强转对象
$abc = array('a','b','c','d','e','f','g'); echo '<pre>'; var_dump($abc); echo json_encode($abc ...
- ThinkPHP 二维码生成
请求获取并展示二维码 <img src="<?php echo U('createCode?zsnumber='.$time.$kcname['id'].$stuInfo['id ...
- POJ 3388 Japanese Puzzle (二分)
题意:给你一个n*n 的图,你总共有k 种花砖,告诉你每一种花砖的个数,让你随便安排它们的位置,问你最多有多少行和第一行是一样,并且要输出第一行的一定存在的图案. 析:首先这个题如果读懂了题意,一点也 ...