Chinaunix首页 | 论坛 | 博客
  • 博客访问: 585872
  • 博文数量: 129
  • 博客积分: 6240
  • 博客等级: 准将
  • 技术积分: 1765
  • 用 户 组: 普通用户
  • 注册时间: 2009-03-18 15:42
文章分类

全部博文(129)

文章存档

2015年(1)

2012年(3)

2011年(6)

2010年(14)

2009年(105)

我的朋友

分类:

2009-12-04 17:33:13

一、原则

        邮件系统迁移包含两大部分,一部分是账号信息(包括登录名,密码邮件域,通讯录等),另外一部分是邮件文件。

二、迁移对象

        旧邮件系统:linux+qmail+vpopmail

        新邮件系统:iRedMail()

三、系统的安装

        本次我采用的iRedOS 0.1.2安装(感谢bibby专门加急完成),。我最终选择的是roundcubemail+mysql的套装。

四、迁移过程

1、  账号信息迁移

        由于两套系统都采用了mysql数据库,所以迁移数据本身工作量不大。下面是两套系统的数据库结构分析——仅做了主要字段的分析)。

        旧邮件系统

Card 通讯录表)

字段名

注释

pw_id

所属人ID

LinkMan

联系人姓名

Email

邮件地址

 

Vpopmail(用户账号表)

字段名

注释

pw_id

用户ID

pw_name

用户账号

pw_domain

用户邮件域

pw_passwd

用户密码

pw_gecos

用户显示名称

pw_dir

用户文件路径

 新邮件系统

        新邮件系统采用了两个库,一个是roundcubemail使用,另外一个是poxfix使用。

roundcubemail_contacts ( roundcubemail通讯录)

字段名

注释

name

联系人姓名

email

联系人邮件地址

user_id

所属人ID

 roundcubemail_users( roundcubemail用户表)

字段名

注释

user_id

用户ID

username

用户账号

 vmail_mailbox(邮件系统账号表)

字段名

注释

username

//用户账号

password

//用户密码

name

//显示名称

maildir

//邮件路径

quota

//邮箱大小

domain

//邮箱域

         经过实际操作,发现如果将旧数据导入roundcubemail_users表可能导致webmail用户登陆出现异常情况。反复查看旧系统数据,使用通讯录的人几乎没有,所以本次迁移中,我并没有导入roundcubemail任何数据——用户在登陆webmail的时候,系统会自动添加数据。

        旧系统数据导出(大家可以根据自己的需要自行选择需要导出的字段)

mysql -uroot -p

use vpopmail;

select pw_name,pw_passwd,pw_gecos,pw_dir,pw_shell,pw_domain into outfile ‘oldmailuser.sql’ from vpopmail;

         下载oldmailuser.sql,进行二次加工,因为我以前的用户文件路径等比较混乱,所以这次我决定统一修改下,大家可以用文本编辑工具随意加工,并将修改后的文件命名为newmailuser.sql。(注意用”,”作为分割符号分割各个字段)

         上传newmailuser.sql到新服务器(我放到/home/upmail/目录),登陆新邮件系统的mysql

mysql -uroot -p     //连接数据库

use vmail;  //使用邮件数据库

LOAD DATA LOCAL INFILE ‘/home/upmail/newmailuser.sql’ INTO TABLE mailbox FIELDS TERMINATED BY ‘,’ (username,password,name,maildir,quota,domain,created);

另外,在vmail:domain表里面添加一条记录,就是刚才导入的域名。

     好了,邮件账号导入就成功了,大家可以测试下webmail登陆是否正常就可以了。

     遗留问题:

    1、通讯录的导入,因为通讯录表里含有用户ID,而我尝试导入数据到roundcubemail的user表,导致用户登陆后异常——用户配置信息字段为空。所以我放弃了该通讯录的导入。

        2、用户自定义文件夹的导入。旧系统的用户文件路径下有mailsize文件记录了用户自定文件夹的名称和目录名,而roundcubemail并没有该文件,直接读取根目录名,想了半天也没有找到解决办法,只有通知用户自行修改目录名称。

阅读(3967) | 评论(0) | 转发(0) |
0

上一篇:企业级VoIP通信技术详解

下一篇:DKIM

给主人留下些什么吧!~~