中小规模UNIX邮件系统的实现
我马上会在gro.clinux.org上开设一个新的项目cmail,下面贴出的内容格式已经全部乱了,整个文档269k,也没法当作附件上传。大家过几天可以在cmail.gro.clinux.org上下载完整的文档,工具和程序。Clinux Mail System Project
文档目录
中小规模UNIX邮件系统的实现 1
Clinux Mail System Project文档目录 1
文档目录 2
一 文档概述 3
二 小规模快速安装 3
2.1需求说明 3
2.2设计说明 3
2.3软件选择 3
三 中小规模完整安装 4
3.1需求说明 4
3.2设计说明 4
3.3软件选择 5
3.4 各软件主页和下载链接 5
3.5安装步骤 6
3.5.1系统准备 6
3.5.2安装相应的支持软件 7
3.5.3.测试环境的准备 7
3.5.4 安装SASL 11
3.5.5安装 pam_mysql 12
3.5.6准备postfix系统, 13
3.5.7准备qpop系统 17
3.5.8安装openwebmail 18
四 版本历史与TODO 27
4.1版本变迁 27
4.2 TODO 27
五 其他 27
5.1 版权说明 27
5.2武汉自由软件协会(www.clinux.org) 27
5.3 GRO.clinux.org 27
5.4 作者 28
CMAIL Project http://cmail.gro.clinux.org
deepin@clinux.org 2002-7-28
一 文档概述
邮件系统是互联网上最常见的服务之一,一个具有完整功能和强大性能的邮件系统涵盖了非常多的网络应用程序和知识,虽然这篇文章主要是描述开放源代码邮件系统的应用实现(注意:不是让我们再写出一个邮件系统来,而是怎么用好其他人已经完成的邮件系统),但是还是有一定篇幅描述了其他与邮件系统正常运行相关的其他应用和程序,如:apache,php,mysql,bind,perl的相关使用。
《中小规模UNIX邮件系统的实现》是我准备完成的《UNIX开源邮件系统全攻略》文章的一部分经过单独整理以后形成的一篇比较完整的文档。其目的是帮助企业邮件系统管理员能更方便的按照这个文档的描述建立起一个基本功能齐备的,支持较多数量用户的unix邮件系统。另外我也希望能就这篇文章形成一个快速安装包,使得各位管理员能够比较容易的下决心把window下的邮件系统迁移到开源unix邮件系统上来。
这个打包方案,我称之为clinux mail system.
二 小规模快速安装
2.1需求说明
中小企业,1000用户以下,一台主机(IP)使用单邮件域,需要快速安装邮件系统
2.2设计说明
在1000用户以下的规模的时候,使用系统的/etc/passwd或shadow进行认证,对效率影响不大。为了快速安装,不考虑使用数据库或者ldap进行认证。
2.3软件选择
功能模块 选择 说明
MTA Postfix
(或sendmail) 不建议使用qmail。Qmail对于快速安装没有什么好处。Sendmail通常系统自带无需安装,可直接使用。或者使用postfix能够很快的安装。
Pop3 qpop 我们只考虑pop3的应用。Qpop能够很快的安装和使用
IMAP / 一般来说中小企业很少使用imap,此处不做考虑
Webmail openwebmail 最快速和易用的是使用openwebmail系统,由于不使用php和mysql,apache或者其他web系统,也没有要求一些特殊的邮件存储格式,openwebmail能很快速的安装起来。
邮件管理 Script 使用命令行shell脚本,正在考虑使用php程序
maillist aliases 使用邮件别名数据库,可以直接管理,也可以使用shell或php程序
邮件过滤 Postfix
Openwebmail 可选.使用postfix的信件头过滤,web上使用openwebmail的过滤, 系统自动调用openwebmail的过滤器进行过滤。另外的方式是可以使用postfix进行过滤。
防病毒 / 快速安装不作考虑
邮箱限额 Disk quota 可以使用系统的用户磁盘限额方式实现,管理使用shell脚本和cron任务进行, 也可以使用postfix的quota补丁进行(见后面章节的描述)。
其他使用传统的邮件存储格式。如果你对qmail特别有好感,还是可以qmail,可以使用qmail自带的pop3服务器(也可以使用qpop,qpop4 已经支持maildir格式)。但是无法使用openwebmail系统,因为它不支持maildir的邮件存储格式,你需要使用sqwebmail来提供webmail。
软件补丁 Postfix quota patch 可以考虑使用postfix的quota补丁
以上软件的安装相当地简单,具体的一些安装描述在后面一章可以查到(但是无需安装各种patch),此处不再详细描述。一般来说,一个熟练的安装者,能够在半小时内让这个系统运行起来(不算编译时间)
三 中小规模完整安装
3.1需求说明
中小企业,1000用户以上,10000用户以下,一台主机(IP)使用多个邮件域(虚拟邮件域),由于使用虚拟邮件域和超过1000的用户,传统的基于passwd的认证方式不适合,因此全部使用mysql进行用户认证,管理也比较方便。对邮件服务和管理能力的要求更高。
3.2设计说明
由于在数据库中读取mail路径,也可以做一定的分布存储,支持10000用户的使用没有问题。为了保证功能的实现和高效,需要为相应的软件安装一些第三方patch。我把整个打包的系统称之为clinux mail system (其实就是一个多个open source 软件的结合体)
为了方便安装和配置和管理,我将全部的系统安装到了一个特定的目录下/usr/cmail,如果你希望安装到其他的目录,可以预先定义环境变量 CMAIL_DIR。使用CMAIL_DIR=/usr/cmail (sh下 )或者export CMAIL_DIR=/usr/cmail (bash下)来定义。邮件的spool目录默认为/var/cmail/spool/,你可以通过定义CMAIL_SPOOL_DIR变量来改变存放目录,用户的个人目录存放的目录默认为/var/cmail/home/,你可以通过定义CMAIL_HOME_DIR变量来修改这个目录。
另外,为了安装的快速方便,如果你的系统原来也安装过类似qmail,qpoper之类的系统,Cmail将不会覆盖和使用它,因为全部需要的基本软件,它已经自己安装到定义好的目录中去了。如果你需要迁移或者升级原来有基本的平面格式的邮件系统(如原来使用了sendmail),可以把用户邮件直接拷贝到Cmail相应的默认邮件域(或者虚拟邮件域目录),然后更改相应的文件权限,用户的信件不会丢失,但是用户密码就需要重新修改了。
如果你希望使用原有的系统的一些部件而导致cmail的功能不能实现,概不负责:)
3.3软件选择
功能模块 选择 说明
MTA postfix 不建议使用qmail。Qmail要有好几个补丁要安装,还需要一些辅助程序,不够快速。Sendmail此时虽然可以使用,但是配置比较麻烦,运行效率有可能也会形成瓶颈。
Pop3 qpop 我们只考虑pop3的应用。Qpop能够很快的安装和使用,standaleon的安装方式能保证运行效率
IMAP / 一般来说中小企业很少使用imap,此处不做考虑,如果有必要建议使用UW IMAP,效率不算很高,但是能和这个系统配合起来
Webmail openwebmail 还是使用openwebmail系统,不过此时需要安装php,mysql提供一些支持
邮件管理 Shell 使用命令行shell脚本,正在考虑使用php程序
maillist 使用邮件别名数据库,也可以直接管理,考虑使用php程序
邮件过滤 可选.使用postfix的邮件头过滤,web上使用openwebmail的过滤
防病毒 可选,可以选用AWGIS+Macafee
邮箱限额 使用了postfix的quota补丁来实现空间限制,不过功能还是偏弱
其他使用传统的邮件存储格式,使用mysql作用户认证和虚拟域的管理。如果你对qmail特别有好感,还是可以qmail,可以使用qmail自带的 pop3服务器(也可以使用qpop,qpop4已经支持maildir格式)。但是无法使用openwebmail系统,因为它不支持maildir的邮件存储格式,你只能使用sqwebmail来提供webmail。
考虑到使用openwebmail(不支持maildir),虽然postfix和qpop都能使用maildir的邮件存储格式,还是使用了平面的邮件格式
软件补丁 Postfix quota patch
Sasl ldap and mysql patch
Qpopper mysql patch 分别增强原有系统的一些功能,大多数是为了支持mysql所准备的。
3.4各软件主页和下载链接
名称 主页 下载链接(常见的下载链接)
Postfix 1.1.11 http://www.postfix.org/
http://postfix.energybeam.com/source/official/postfix-1.1.11.tar.gz
Cyrus-SASL 1.5.27 http://asg.web.cmu.edu/cyrus/
ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/cyrus-sasl-1.5.27.tar.gz
Sasl patch http://www.surf.org.uk/src/cyrussasl.html
http://www.surf.org.uk/downloads/sasl-1.5.27-ldap-ssl-filter-mysql-patch4.tgz
pam_mysql 0.4.7
(可选) http://sourceforge.net/projects/pam-mysql/
http://umn.dl.sourceforge.net/sourceforge/pam-mysql/pam_mysql-0.4.7.tar.gz
Qpop 4.04 http://www.eudora.com/qpopper/ http://core.ring.gr.jp/archives/net/