[ 来源: | 作者: | 时间:2007-07-21 | 收藏 | 推荐 ] 【大 中 小】
sflj www.it55.com kg^&fgd
1、介绍
vpopmail是qmail的一个非常重要的扩展软件包,它是由Inter7公司[http://www.inter.com]开发
的,主要针对qmail本身支持虚拟邮件域,但是配置和用户管理非常复杂和麻烦而设计的。它的特点是实现了qmail所有的用户帐号只使用操作系统的一个
用户帐号,所有的的vpopmail相关的进程都以一个GID/UID来运行,让邮件系统的帐户和操作系统的用户分离,提高了邮件系统的安全性。它支持基
于域名和IP地址的虚拟邮件域,每个虚拟邮件域之间互相独立,通过使用平衡树填充的技术,vpopmail可支持2300万个虚拟邮件域,每个虚拟邮件域
可支持2300万个邮件帐户。Vpopmail还支持LDAP、Oracle、Sybase、Mysql、PostgreSQL等用户认证信息存储方式,
使得建立和维护百万级用户的大型邮件系统很方便的实现。
2、实现虚拟域的原理
qmail对邮件域有本地(local)和虚拟(virtual)的概念。本地域是实现匹配/etc/passwd系统帐号,而虚拟域则
匹配在qmail的配置文件virtualdomains中的各个域。Vpopmail利用qmail的users/assign和
virtualdomains文件。users/assign文件被编译成users/cdb的格式,它利用一个哈系数据库来加快查找速度,若任意一个模
式得到匹配,qmail就使用文件中定义的uid和gid传送该邮件到文件中定义的目录。Vpopmail利用该方法实现使qmail以单一的
vpopmail/vchkpw身份来传输用户所有的虚拟域的邮件,从而实现了将邮件传输到~vpopmail/domains/<
virtualdomain>目录下的不同用户。
对于qmail来说,qmail-local程序一旦从users/assign得到相关的信息,则其运行标准的.qmail文件操
作。一般来说,.qmail-<user>文件被用来完成邮件的转发、别名、或者调用其他程序如ezmlm等。若没有找到匹配,则qmail
-local查找.qmail-default文件,这是qmail-local邮件投递机制中的最后一步,qmail利用该文件激活
vedlivermail程序,该程序以两个参数被调用,第一个当前没有作用,主要使用来向后兼容的,第二个参数使用来在一个虚拟域用户没有被找到时缺省
投递,一般来说,缺省投递可以时将邮件投递到某个目录或者某个邮件地址返回没有此用户的返回信件。
3. .qmail-文件
传送用户邮件通常是由一个或者几个 ".qmail"(发音 dot kyoo mail) 文件控制的. 这些文件位于用户的主目录,
文件名由 .qmail 开头. .qmail 的man 手册页面描述了 .qmail 文件使用方法.
.qmail 文件包括了一个传送指令清单, 每行一个指令. 每行的第一个字符决定了选择那种传送方式.
vd;k;l www.it55.com rdfg
字符 传送类型 值
#
无 (注释) 忽略| 程序 由shell 执行的命令/ 或者 .
mbox邮箱格式 (如果路径最后一个字符不是一个斜杠)mbox 的路径名 (包括斜杠"/"或者 点".")/ 或者 .
maildir邮箱格式 (如果路径最后一个字符是一个反斜杠)maildir 的路径名 (包括斜杠"/"或者 点".")&
转发 转发邮件的地址字母或者数字转发 转发邮件的地址 (包括第一个字符) vd;k;l www.it55.com rdfg
IT资讯之家 www.it55.com
如果指令是由程序传送, qmail 启动一个 shell (/bin/sh) 来执行这个命令, 然后把邮件的一个副本从标准输入传送给这个命令. sflj www.it55.com kg^&fgd
程序传送是非常强大的, 被用来实现的功能范围非常广阔, 例如邮件过滤, 自动回复, 以及通过第三方传送代理比如procmail来传送邮件.
45398 www.it55.com it55学习IT知识,享受IT生活 4dfkjn
it55.com(编辑:IT资讯之家 www.it55.com)