hmailserver关于afterlogic webmail php版本下的用户密码修改功能
hmailserver作邮件服务器,squirrelmail 作邮件服务器的web界面实在是拿不出手去。换了afterlogic的webmail,界面稍微好一些,像那么回事了。
今天测试,发现afterlogic有个小bug:当邮箱密码只有1位字符时,登录后邮箱同步等都有问题。跟踪代码发现密码重复了一下,便成了2位。不过没关系,真正部署时肯定要求用户的密码字符数。
无论是squirrelmail ,还是afterlogic,php版本都不能修改hmailserver中的邮箱用户的密码,虽然squirrelmail和afterlogic都提供了界面修改密码的插件或功能。注:afterlogic的asp.net版本可以通过增加hmailserver的dll文件作为plugin,实现界面修改密码。
网上关于linux下使用poppassd服务开启106端口增加更改密码的说明,其实更改的是操作系统用户的密码,也就是说当邮箱用户就是系统用户时,可以这么做。很遗憾,hmailserver的用户肯定是邮件服务器自己设置的。afterlogic webmail如何解决呢?方法有几种,比如直接将hmailserver的php管理界面中的密码修改移植到afterlogic webmail中,不过估计工作量也不少。
在此设计了2个简单的思路,还是使用poppassd,修改poppassd,使其直接修改密码,方法有2种:
(1)使其调用hmailserver的COM接口:hMailServer.Application。
这个是参考hmailserver的php管理界面代码中:$obBaseApp = new COM("hMailServer.Application");
(2)直接修改数据库中的用户密码。最好hmailserver直接使用mysql。这样poppassd与mysql直接打交道,绕开了hmailserver.
无论哪种方法,需要提前设置的:
1。afterlogic webmail打开poppassd-change-password插件:
修改data\settings\config.php,加入如下代码:
return array(
2。下载poppassd
修改源代码,利用hmailserver的COM接口:hMailServer.Application,进行密码修改。重新编译链接,生成nt_poppassd.exe。
3。部署poppassd为安装hmailserver的window上的服务:
S: 200 machine_name popassd v1.4 hello, who are you?\r\n
E: user yourloginname\r\n
S: 200 your password please.\r\n
E: pass yourcurrentpassword\r\n
S: 200 your new password please.\r\n
E: newpass yournewpassword\r\n
S: 200 Password changed, thank-you.\r\n
E: quit\r\n
S: 200 Bye-bye\r\n
S:
E: