基于数据库的虚拟域邮件系统的构建

2009-05-13 12:57:08来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

谢嵘
1、简介
本文对文献[
1
][
2
]的方案进行了扩充改进,组建了一个商业级的虚拟域邮件系统。主要增加了webmail和用户注册管理、磁盘限额等功能,改进了邮箱管理,解决了原sendmail用户平稳升级等问题。经实际检验,该方案实用,功能强大,可供构建或升级邮件系统借鉴。
操作系统:FreeBSD4.8 数据库:Mysql3.23
SMTP代理:Postfix2 SMTP认证:Cyrus-Sasl2
Web邮件:OpenWebmail POP3:vm-pop3
认证模块:pam-mysql auth_mysql
2、用户表结构
字段名
类别

说明
相关程序
user
char(20)
lily
用户账号
pam owm pop3
name
char(30)
test user
用户全名
owm
passwd
char(60)

密码
pam owm pop
uid
int(5)
2000
用户ID
postfix owm
gid
int(5)
2000
组ID
postfix owm
home
char(60)
/vhost/lily
用户目录
owm
addr
char(60)
lily@test.com
邮件地址
postfix
mbox
char(20)
lily
邮箱名
postfix owm
status
int(3)
1
状态
可选
表1 用户表
3、安装和配置
3.1软件安装注意事项
这里没有给出完整的安装方法。本文所用软件均可用ports安装,安装过程很简单,只需在/usr/ports中找到相应软件,然后执行make install。详细的安装和测试方法见参考文献[
1
][
2
][
3
]。补充说明:
(1)安装FreeBSD时请选择安装cvsup,另外/var分区用于保存邮件队列,需要10G以上空间,并创建一个/vhost分区用作保存用户主目录。
(2)安装pam-mysql前需要安装gmake。pam-mysql安装时需要修改pam_mysql.c的源代码,删除第54行#define DEBUG。完装完后将/usr/local/lib/pam_mysql.so拷贝到/usr/local/lib/目录中。
(3)vm-pop3在安装后,需在/etc/inetd.conf添加一行:
pop3 stream tcp nowait root /usr/local/sbin/vm-pop3d vm-pop3d
3.2认证模块配置
3.2.1 创建数据库并添加数据
(1)创建数据库mail: create database mail;
(2)创建用户数据表mailuser:请根据表1用create table语句创建。
(3)添加用户以数据
INSERT INTO mailuser(user,name,uid,gid,passwd,home,mbox,addr) VALUES ('lily','test user',2000,2000,'*****','/vhost/lily', 'lily','lily@test.com');注:密码是经过crypt函数加密,我是用vipw拷过来的,尚不知道如何从命令行生成,请网友帮忙解决一下。
(4)创建一个mysql系统用户mailsys,密码为batman,并限制只能本地访问。pam、postfix和openwebmail需要用mailsys用户访问数据库。
GRANT ALL ON mail.* TO mailsys@localhost IDENTIFIED BY 'batman';
3.2.2 配置pam
在pam配置文件(/etc/pam.conf)添加如下两行:
smtp auth required pam_mysql.so user=mailsys passwd=batman host=localhost db=mail table=mailuser usercolumn=user passwdcolumn=passwd crypt=1 sqllog=0
vm-pop3d auth required pam_mysql.so user=mailsys passwd=batman host=localhost db=mail table=mailuser usercolumn=user passwdcolumn=passwd crypt=1 sqllog=0注:smtp和vm-pop3d使用pam_mysql.so模块进行认证。后面的参数为账号所在数据库、表等信息。crypt=1是使用des加密。sqllog=0是不在日志文件记录sql查询语句。

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Qmail Server Howto

下一篇:Mysql 的数据库复制功能 (Replication Database)