这两天公司给了我一个任务,让我给公司和一个客户安装一个邮件服务器,需求是:
- 免费,最好是正版;
- 支持多域名(因为公司、客户的两个域名同时用一个服务器);
- 支持较多用户;
- 运行环境是 windows 平台
这次我找到了一个比较不错的邮件服务器:hMailServer,当前发布的服务器版本是 5.3.3。这个邮件服务器是开源的邮件服务器,用 c 开发的,数据库支持 ms sql server、MySql、PostgreSQL,提供 SMTP/POP/IMAP 等服务,没有域名、用户数的限制,且支持杀毒软件、反垃圾邮件等功能。这完全符合了我们的要求。具体的安装办法可以参考官方网站的介绍,也可以到这个页面看看:
用hMailServer架设自己的高性能免费邮件服务器
当然,这个服务器也有些遗憾:
- 没有 web 邮件客户端;
- 没有中文界面;
- 只提供了 php 的 web 管理界面。
这些缺憾前两个很容易解决:
- web 邮件客户端在网上很多,根据自己的服务器配置去下一个安装一下就行了。当然,也可以自己开发一个;
- 中文界面也很好解决,可以自己翻译,也可以到这里看看:http://www.99wzdh.com/blog/post/7.html
对于第三个缺憾,如果你用 php 服务器的话,那恭喜你,你可以直接使用这个服务器安装目录下的:PHPWebAdmin 目录来管理。但我用的是 java,且对 php 早已忘得一干二净,但又不想安装 php,所以只好自己想办法解决。
经过两天的研究,我打算自己写一个页面来管理。之所以决定要自己写程序来管理,是因为我发现,其实邮件用户账号等各项配置数据都保存在数据库中,处理起来非常简单。唯一麻烦的就是用户密码的加密算法。
下面先简单说一下这个服务器的一些主要的数据库表:
- 域名表:hm_domains,这个表保存了服务器中配置的各个域名及其相关属性;
- 邮件账号表:hm_accounts,这个表保存了所有的邮件账号的各项信息,如所属域名、密码、邮箱大小等;
- imap服务的目录表:hm_imapfolders,这个表保存了 imap 服务的各个目录。默认情况下,每建立一个邮件账户,系统都会为这个用户添加一个 imap 目录(收件箱)
这三个表就是我们自己写管理邮件账户页面时,最常用到的表。其它的表,也很简单,如果需要的话,看一下,很容易看懂。
这两天我遇到的最大麻烦就是,用户的密码加密算法。我看了数据库的保存密码的字段,但不知道是用什么加密算法加密的。到网上找了一圈,都没有找到直接的答案。但看了一些人的讨论后,再自己测试了一下,最终发现,在表 hm_accounts 中保存的密码,不同的账户是可以使用不同的加密算法来加密的。表中保存密码的字段是:accountpassword,而这个密码所使用的加密算法由后面的一个字段的值来决定,这个字段就是:accountpwencryption。当前这个字段的值决定了密码的不同加密算法,下面是其对应关系:
0 -> 用明码来保存密码,即不对密码进行加密;
1 -> 使用 Blowfish 来加密密码。据介绍,这种加密算法并不安全,和用明码保存密码的安全性相差不大;
2 -> 使用 MD5 加密算法来加密密码;
3 -> 使用 SHA256 加密算法来加密密码。这也是 hMailServer 官方推荐的加密算法
知道上述内容后,自己写管理用户的界面就非常简单了,要添加一个用户账号,直接往数据库添加一条记录即可。
当前默认的 hMailServer 的加密算法是(参考:http://cpdns.com/2010/11/hmailserver-users-password-encryption-algorithm/):
- 随机生成一个6位长的字符串,假设生成的随机字符串是:8et5p9,假设密码是:123456;
- 将“随机字符串”和“密码”连起来:8et5p9123456;
-
将连起来的新字符串,用SHA256加密,如:hash("sha256","8et5p9123456"),得到的密文是:2dc34747955a3546b0c71459c4be8b56a998aa32bc0f5e546872157d665d14c1
-
将“随机字符串”与“SHA256加密后的密文”连起来,得到新密文:8et5p92dc34747955a3546b0c71459c4be8b56a998aa32bc0f5e546872157d665d14c1,这就是保存在数据库表中的密码字段里的值
文章有点啰嗦,但希望能对想使用这个服务器,并想自己写程序来管理邮件账号的朋友有点帮助。
分享到:
相关推荐
hMailServer,当前发布...这个邮件服务器是开源的邮件服务器,用 C# 开发的,数据库支持 ms sql server、MySql、PostgreSQL,提供 SMTP/POP/IMAP 等服务,没有域名、用户数的限制,且支持杀毒软件、反垃圾邮件等功能。
开源hmailserver免费邮箱+webmail asp.net
很实用 学习边下边安装 邮件服务器hMailServer,网页前端管理,访问平台Webmail搭建
资源名称:hMailServer邮件服务器工具简介:hMailServer是一个运行于微软Windows系统、基于GPL授权、免费的电子邮件系统;支持常见的电子邮件协议SMTP、POP3、IMAP;可以很容易地与许多现有的网络邮件系统集成和二次...
一个邮件服务器,免费的,方便自己架设服务器 本人已经使用它1年了。 汉化方法: 1 把chinese.ini文件复制到 hMailServer 安装目录下的 \Languages 2 编辑 \Bin\hMailServer.INI 文件,在 [GUILanguages] 字段中的 ...
在持续集成中,我们常要与开发等进行沟通,时时反馈结果,多用邮件。然而服务器会被限制外网发送不了第三方邮件,就需要搭建个内网邮件服务器。hMailServer可简单快速安装。
HMail Server+WebMail搭建邮件服务器+详细说明,邮件发送,亲测可用 有php 和asp两种可选 ,亲测可用。
hMailServer这个好email server,hMailServer是仅运行在windows下的一个邮件服务器,首先...别的邮件服务器有的功能基本上hMail都具备了,最最重要的,hMailServer是开源软件,完全免费使用,hmaiserver配置也非常简单
hMailServer邮件服务器环境搭建和配置
全面的介绍了hmailserver+roundcube(apache+mysql+php)邮件服务器配置
自己多次用过的Hmailserver+webmail搭建邮件服务器安装包和操作说明
hMailServer邮件服务器smtp、pop3、imap以及这三种的加密协议,也支持ipv6地址
hMailServer是一个运行于微软Windows系统、基于GPL授权、免费的电子邮件系统;支持常见的电子邮件协议SMTP、POP3、IMAP;可以很容易地与许多现有的网络邮件系统集成和二次开发;具有灵活的垃圾邮件防护,并且可以...
Windows2008下Jira与hmailserver免费邮件服务器结合搭建中hmailserver的相关配置。
Hmail server+Afterlogic webmail lite搭建免费邮件服务器
这是一个开源的邮件服务器,配置简单,比一般邮件服务器功能更强大、更灵活
免费邮件服务器 hMailServer5.3带汉化包
分析邮件服务器不能收发的原因与解决方法 有很多用户都会碰到邮件服务器不能正常收发邮件,但又束手无策。以下是 本人的一点经验与总结。
hmailserver是一个免费的win下的邮件服务器,类似于国内的winmail的管理界面只是没有中文不过可以找到网上的中文包补丁, 支持SMTP,POP3,IMAP 不内置Webmail但可以使用开源的各种web端来组合使用. 可以使用邮件过滤...