免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2930 | 回复: 5
打印 上一主题 下一主题

[Mail] 向postfix导入大量帐号的办法(mysql)? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-09-25 17:45 |只看该作者 |倒序浏览
用mysql存储虚拟域用户

现在准备从Imail转到postfix,因为postfixadmin设置使用md5crypt方式的密码加密,所以password字段保存的是加密密码,不知道mysql里有没有什么函数可以直接用来将明文密码转成加密密码。

帐号多时,肯定要处理一个批量导入的问题,不可能从postfixadmin的web界面一个个加。

现在临时的办法是参考postfixadmin里的脚本,使用它的pacrypt函数来生成密码,从文件里读入批量帐号信息,并插入mysql表中。

论坛徽章:
0
2 [报告]
发表于 2006-09-26 13:30 |只看该作者
都没人整过?成百上千的邮箱,你们难道组织人一个个加?

我是准备将Imail帐号转移到Postfix,先写个脚本将Imail帐号提出来,还要将密码解密,最后再导入到Postfix的mysql用户帐号表中。

解密的脚本用asp的已经可以了,但PHP丢了好久,要翻过去还得费点功夫,

论坛徽章:
0
3 [报告]
发表于 2006-09-26 23:16 |只看该作者
function initDict(){
$x = array("0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F";
$y = array("0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F";
$count = -97;
$dict = array();
while(list($key,$value)=each($x))
{
        reset($y);
        while(list($keyy,$valuey)=each($y))
        {
                //echo $count;
                //echo $count;
                //$row=array($count,sprintf("%s%s",$value,$valuey));
                $dict[$count] = sprintf("%s%s",$value,$valuey);
                $count = $count + 1;
        }
}
//echo sprintf("Total count is %s",count($dict));
//$ln = 0 ;
reset($dict);
/*
while(list($keydict,$valuedict)=each($dict))
{
        $ln = $ln + 1;
        echo sprintf("%c%c",chr(13),chr(10));
        echo sprintf("\n%d:%s==>%s",$ln,$keydict,$valuedict);
}
*/
return $dict;
}
function decPassword($userName,$passWord)
{
$dictRef=initDict();
$decrypt=" ";
$user=strtolower($userName);
$firstCharCode=ord($user);
$reference=$firstCharCode-97;
$userCode=array();
$passCode=array();
for($i=0;$i<strlen($user);$i++){
        $userChar=ord(substr($user,$i,1));
        $userCode[$i]=$firstCharCode-$userChar;
}
for($p=0;$p<strlen($passWord)/2;$p++){
        $passChar=substr($passWord,$p*2,2);
        $passCode[$p]=array_search($passChar,$dictRef);
        //echo sprintf("\r\n current offset is : %d",$p);
        //echo sprintf("pass Code %d is:%s",$p,$passCode[$p]);
}
for($k=0;$k<count($passCode);$k++){
reset($passCode);
$pos = $k % strlen($user);
//echo  $passCode[$k]+$userCode[$pos]-$reference;
//$decrypt = sprintf("%s",chr($passCode[$k]+$userCode[$pos]-$reference));
$decrypt = sprintf("%s%s",$decrypt,chr($passCode[$k]+$userCode[$pos]-$reference));
//echo $k;
}
return $decrypt;
}


完成了一段解密Imail帐号密码的PHP代码,先帖上来瞧瞧,PHP好久没摸了,最后才发现,字串连接用.号可以搞定,一时没查到,用上sprintf了,那个别扭,汗一个。不过,功能是实现了,当然,我的是针对Imail7的,不知道8版本的有没有变化。

论坛徽章:
0
4 [报告]
发表于 2006-09-27 16:50 |只看该作者
呵呵,总算搞定了,PHP脚本写完后,导入159个帐号,执行一下脚本,1分钟内搞定,估计我自已一个个去加,也要这么两三天吧,

记得以前使用qmail+vpopmail时,还有vadduser之类的脚本可以用,没想到现在用postfix,要用PHP脚本来搞,它难道就没有一个加帐号的脚本?

论坛徽章:
0
5 [报告]
发表于 2006-09-27 18:10 |只看该作者
数据库的关联不一样,加脚本的数据库语句也不一样。你说怎么加?
Qmail是因为Vpopmail的用户认证的数据库表已经写死了。
jssh 该用户已被删除
6 [报告]
发表于 2006-09-29 16:03 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP