各位:
沉寂已久的ExtMail 开发团队今天郑重向大家发布Extmail 1.0.4及后台Extman 0.2.4,新版主要对使用的便利性和效能做了进一步提升,功能也进一步强化。部分核心代码经过了优化,修正了大量的小问题。尽管还存在一些小的细节问题,但比起之前的所有版本,又进步了许多。主要改动如下:
Webmail 部分:引用:
修正了登陆框登陆后台不正常的bug(但后台打开校验码则不能通过前台登陆)
邮件列表的分页参数增加到300,方便大量阅读邮件的朋友
清理了pop3及pop3设置的界面及翻译
黑/白名单设置页面增加了“启用/禁用”的功能
增加了Tab的支持,主要用于偏好设置,已按类别分成不同Tab
偏好设置处增加邮件删除选项(彻底删除或移动至垃圾箱)
回复全部时取消将to的地址增加到收件人列表里
改进了邮件索引设计,支持增量操作,提高了效率(+400%)
修正了folders_mgr函数删除老式mail目录的bug
重新设计了地址本,增加组的支持,增加大量字段
地址本的界面也进行了改进,更加方便一些
修正了读邮件时有时无法强制改成某种编码的bug
转发时增加了html代码的过滤支持
后台部分:引用:
删除了群发的open2()调用,该调用会污染FCGI的I/O
增加了忘记密码和修改密码两个小工具,方便没有webmail支持的用户
增加了忘记密码所需要的问题和答案字段(question,answer)
修正了注册程序校验码必须分大小写的bug
修盖了部分校验码字体颜色,以及图片的背景扰纹颜色
首页增加了普通邮件用户的辅助工具链接
别名部分删除了过期日期的支持(事实证明该功能没用)
重新设计帐户过期的流程,详见下文介绍
增加了快速设置过期周期的下拉菜单
增加了彻底删除用户帐户的邮件数据功能(SYS_PURGE_DATA=1)
限制别名显示长度,超过45字节的加...号,列表时显示更好看一些
重写了tools目录下的工具,正式发布Cmdtools 0.1(chifeng)
给time2epoch函数增加了YYYY-MM-DD的支持
增强的分页设计,可以支持直接跳转至某一页,翻页更方便
修正了LDAP模块里的一个变量错误
改进的邮件索引
extmail 1.0.3及之前版本的索引,都不支持增量创建,一旦有新邮件来了,都必须扫描所有的邮件重新建立索引。这样对于邮件量非常多(比如上万封)而系统很繁忙的机器,使用起来就显得有点慢了。新改进的索引支持增量化的扫描,即只扫描变动的邮件(新来的,或者删除,修改过的),没变动的邮件索引继续保留,因此更新索引时的I/O量就很小了。根据简单的测试发现,对于有3w封信的邮箱,重建索引的速度起码提升了4倍以上。但如果邮件索引损坏或者不存在,重新建立的时间和老版本索引技术是一样的。
CmdTools 0.1 Beta
对于系统管理员而言,有时候做维护涉及到批量化的操作,比如批量加用户,删用户,或者改密码等。使用web后台会很麻烦,如果能有类似vpopmail的工具来管理,那就很方便了。Cmdtools 应运而生,它主要提供了对domain,管理员,别名,帐户等4类信息的管理。大致有增/删/改/批量加/删/列表/查询等功能。可以看作是命令行下的extman。该工具由chifeng 老大设计编写,基于extman的api,因此必须在安装有extman的环境下使用。由于该软件还不成熟,目前在对付一些老的ldap数据时还有些小问题,所以大家使用时多留意问题,多多反馈,期待下一个版本的Cmdtools将更稳定可靠。
程序主要放在extman/tools下,分别是domainctl.pl, aliasctl.pl, userctl.pl, adminctl.pl及diffinfo.pl。程序介绍:
domainctl.pl - 管理域名,支持增/删/改/查/列表等。详细用法直接执行就可以看到help了
aliasctl.pl - 别名管理,支持增/删/改/查/列表等
userctl.pl - 用户管理,支持增/批量增/改/删/批量删/列表/查等
adminctl.pl - 管理员管理,支持增/删/改/查等操作
diffinfo.pl - 校验用户在数据库中的记录和实际的邮件目录是否匹配
extman删除用户时邮件数据的保留与否
原来extman删除用户时都保留了邮件帐户数据,现在增加了一个选项,可以删除邮件数据。SYS_PURGE_DATA = 1,在用户列表时有一个checkbox可以临时打开,关闭这个功能。
新的过期流程
一直以来expiredate字段用处不是很大,而且原来的过期流程不合理,域名过期了但是帐户可以不过期。现在全部重新设计,只有2种情况:
1)domain 无任何限制(0000-00-00),则用户既可以不限时,也可以限制expire
2)domain限制(比如2010-12-24日),则用户可以设置为跟随domain(0000-00-00),也可以设置限时,但这个时间不能
超过domain的限制。
自动扫描过期用户的程序也会根据上述流程来鉴别,一旦domain过期,则用户无条件被禁止访问。
对于使用新版的用户,必须根据自己的数据库情况进行升级。见下文。
升级指导
MySQL用户,只需导入extman/addon/upgrade_0.2.3_to_0.2.4.sql 即可。然后按过去的方法配置好webman.cf ,注意不要继续使用原来老的extman的webman.cf。
下载和演示
下载地址:
http://www.extmail.org/download
演示:
http://demo.extmail.org
紧急提示
截止2008年4月1日21:00前下载的extman 0.2.4及 extmail 1.0.4都存在一些问题,extman 0.2.4(仅限于0.2.4)还存在一个比较严重的安全漏洞,强烈建议新老用户重新下载,备份配置文件,然后解压后覆盖。如果配置了fcgi的请重新执行1次。
补充公告1
今天早晨发现了extmail 1.0.4的一些小bug,顺便修复并更新了,因此3月28日中午12点前下载的朋友,请下载本帖的附件补丁,回去打上补丁就可以解决这些小bug了。文件名是1.0.4.patch。将文件放到extmail的根目录。然后执行:
# patch -p1 < 1.0.4.patch
这样就可以将补丁应用到程序里了。
补充公告2
截止至2008年3月31日晚上22:55分前下载的extman 0.2.4有个小问题,extmail.sql里mailbox表漏了2个字段定义,对于新装的用户在加用户时就会出错,请将下面的sql代码放到mysql里执行即可解决问题。对于老用户从其他版本升级过来的,不存在此问题。
引用:
ALTER TABLE `mailbox` ADD `question` text NOT NULL default '' AFTER `disablepop3`;
ALTER TABLE `mailbox` ADD `answer` text NOT NULL default '' AFTER `question`;
ALTER table `domain` change `expiredate` `expiredate` DATE not null default '0000-00-00';
ALTER table `mailbox` change `expiredate` `expiredate` DATE not null default '0000-00-00';
ALTER table `manager` change `expiredate` `expiredate` DATE not null default '0000-00-00';
补充公告3
截止至2008年4月1日凌晨1:00前下载的extmail 1.0.4用户,包括应用了补充公告1的用户,都应该下载1.0.4-2.patch,该补丁修正了原有版本中读邮件时不能快速将来信人地址加到地址本的问题。使用方法:
# patch -p1 < 1.0.4-2.patch
另外,extman的expireusers.pl 也有一个小bug,只需要简单修改就可修复所有人都设置为active=0的问题了。编辑:
extman/tools/expireusers.pl
109行,将“00::00::”改为“00:00:00"即可
补充公告4
截止2008年4月1日20:00前下载的extman 0.2.4用户请注意,原来的0.2.4里包含了一个比较大的安全漏洞,即后台的“忘记密码”功能程序里有安全漏洞(具体什么漏洞暂时不说,防止有人乱搞),由fengyong老大发现并紧急通知了我们更正,目前已经修复并测试完毕。提供下面的补丁,使用方法:
下载0.2.4.patch,然后放到extman的根目录,执行:
# patch -p1 < 0.2.4.patch
即可。如果有fcgi配置的话请重新启动dispatch-init
2008-04-03
另外extmail 还有一个javascript的小bug,主要表现为:如果过滤规则界面没有任何规则,点“新增”将提示“请选择要操作的规则,然后重试”。这主要是因为在这种条件下(没有任何现存的规则),新增按钮没有调用addRule()这个javascript函数。修正办法很简单,编辑:
extmail/html/default/filter.html找到145行:
引用:
<input type=submit value="<%add%>">
改为:
引用:
<input type=submit value="<%add%>" onclick="javascript:addRule()">
即可。
建议看到这里的朋友,重新看“紧急公告”的内容,重新下载extmail 1.0.4 及extman 0.2.4,消除潜在的漏洞