邮件管理篇——VmailMgr
对于管理员来说,当然需要一个好的工具来对邮件系统进行管理。实际上,Qmail就有个擅长管理的好伙伴——VmailMgr。
VmailMgr介绍
VmailMgr全称是Virtual Mail ManaGeR(虚拟邮件管理器),是专门配合Qmail的一个软件包,利用它可以实现以下功能:
* 增强Qmail的口令验证功能,使用户可以通过POP3及IMAP访问自己的虚拟邮箱;
* 基于CDB的用户口令管理方式,尤其是在用户数量较大时可以大大提高口令验证速度;
* 提供了丰富的工具进行虚拟域、虚拟用户及别名(Aliases)的管理;
* 提供一组功能强大的CGI,可以直接通过网页进行增加用户、删除用户和修改密码等各种管理工作;
* 提供一组PHP函数,可以灵活地编写PHP文件,并通过网页进行各种管理工作;
* 通过后台进程确保CGI和PHP代码操作的安全。
VmailMgr安装
最新版本的VmailMgr 可在www.Vmailmgr.org或http://em.ca/~bruceg/vmailmgr/ 下载。如果下载RPMS包,至少要下载Vmailmgr和 Vmailmgr-daemon 包。
笔者推荐大家从源代码安装,其安装方法如下:
(做为非root 用户)
tar zxf
cd
./configure
make
(做为root 用户)
make install
VmailMgr使用
安装VmailMgr完成后,开始使用虚拟域之前,还有几个必要的步骤,我们以建立一个虚拟用户“me@mydomain.org”(其别名是“myself@mydomain.org”和“myname@mydomain.org”)为例,一步步地进行介绍。
1.首先要为这个虚拟域做域名解析。在DNS服务器上将MX记录指向邮件服务器,如果想使虚拟域可以基于IP地址正常工作,还需要在DNS服务器上做一条PTR记录,例如:如果nslookup 10.56.33.122 返回 mail.mydomain.com,那么为了使用“虚拟域”,对应于IP地址的PTR是:“mail.mydomain.com:myuser”。
2. 建立该虚拟域的基本用户。这个用户的UNIX登录口令也将作为进行该虚拟域的邮件系统管理超级用户口令,所有该虚拟域的虚拟用户的邮件都将保存在这个用户的目录下,所以这个目录要留有足够的空间。例如,我们建立了用户“v” 做为虚拟域的基本用户,用户目录在“/home/vmailuser”。
3.告诉Qmail 识别这个虚拟域。这需要修改Qmail在“/var/qmail/control”目录下的两个设置文件: “rcpthosts”和“virtualdomains”。
1)在“rcpthosts”中加入“mydomain.org”。
2)在“virtualdomains”中加入“mydomain.org:v”。
如果想使用“anything.mydomain.org”的形式, 可按如下修改:
3)在 “rcpthosts”中加入“.mydomain.org”。
4)在“virtualdomains”加入“.mydomain.org:v”。
4.修改Qmail-popup/Qmail-
POP3D的口令校验方式,使用VmailMgr 提供的“checkvpw”。具体的修改方法依赖于Qmail的安装方式。
1)将Qmail-popup/Qmail-POP3D 命令行中的“checkpassword”换成“checkvpw”(Qmail-popup/Qmail-
POP3D命令行可能在“/etc/inet.conf”中或者在一个“tcpserver”命令中 )。
2)打入以下命令:
′echo checkvpw /var/qmail
/control/checkpassword′
5. 加入虚拟用户及别名。首先以刚才创建的基本用户身份登录(如, “su - v”),然后就可以使用Vmailmgr提供的命令进行用户及别名的建立。例如下面的命令将建立一个用户me及他的两个别名myself和myname:
1)执行命令:“vadduser me”(将提示要求输入口令)
2)执行命令:“vaddalias me myself”
3)执行命令:“vaddalias me myname”
完成以上步骤后,你还需要杀掉并重新启动“Qmail-send”,让它读新建的“virtualdomains”表,安装过程就完成了。可以通过下面两种方式进行使用访问:
一种是以“userSEPvirtual.domain.org”形式登录,“user”是虚拟用户名;SEP分隔符,可以是“@”或者 “:”(可在“/etc/vmailmgr/”目录下设置);“virtual.domain.org”是虚拟域的域名,与 “/var/qmail/control/
virtualdomains”文件中相同。
第二种方式是以邮箱的内部形式访问——“baseuser-user”,这里的“user”是虚拟用户名,而“baseuser”是该虚拟域的基本用户,也是该虚拟域的邮件系统管理者。
例如 “/var/qmail/control/
virtualdomains”含有:“mydomain.com:v”
已经建立了基本用户“v”,并建立了虚拟用户“me”,在“/etc/vmailmgr/”中的“分隔符”变量包含“@:”,那么这个虚拟用户的邮件可以用 “me@mydomain.com”、“me:mydomain.com”或者“v-me”方式访问。
VmailMgr对POP3 及IMAP的支持
要使Qmail的POP3支持VmailMgr的虚拟用户认证方式,需要在“/etc/qmail/control/checkpass
word”文件中加入“checkvpw”,并重新启动POP3D。
VMailMgr支持Courier-IMAP, 但 Courier-IMAP却不能自动检测到VMailMgr。这意味着我们要做一些工作以使它们两者一起工作顺畅。
*首先,你必须将′/usr/local/bin/authvmailmgr′拷贝到′/usr/
lib/courier-imap/libexec/authlib/authvmailmgr′。
* 然后,编辑′/usr/lib/courier
-imap/etc/imapd.config′文件中的“AUTHMODULES”声明,并且添加′authvmailmgr′为第一个确认系统。
VmailMgr的命令与系统配置
VmailMgr的系统参数都在 “/etc/vmailmgr/”目录下以文件的形式进行设置。可进行设置的项很多,如口令的验证方法、默认邮件大小、软硬磁盘空间限额及用户目录名等。每一项对应一个设置文件,如果没有对应的文件则采用系统默认值。具体设置方法可参考VmailMgr文档中的configuration.htm。
VmailMgr提供用户认证、管理,邮件管理的命令也很丰富,常用的命令见表2。其具体的使用方法可参考http://www.vmailmgr.org/docs/下的文档。
表2 命令名称 用途
vmailmgrd vmailmgr 的守护进程
vsetup 建立一个虚拟域
vadduser 增加一个虚拟用户
vdeluser 删除一个虚拟用户
vaddalias 增加一个别名
vdelalias 删除一个别名
vpasswd 修改一个虚拟用户的口令
vdeliver 通过vmailmgr 投递邮件信息
vauthenticate 验证一个虚拟用户
checkvpw 为虚拟和非虚拟用户验证口令
vchattr 修改一个虚拟用户的各项属性
,