1./etc/mail 是现在被尊重的默认sendmail配置目录
2.Virtusertable文件用于映射虚拟地址到真实的地址
3.Access文件定义拒绝或接收来自指定域的email
4. 在/etc/mail内同样有其它文件
他们中的两个mailertable和domaintable默认的sendmail配置不使用,但是包含的不完全。
5. 在/etc/mail中出现的另一个文件是Makefile
注意在/etc/mail中的所有文件在被sendmail使用之前必须被混编。这样允许sendmail守护进程快速地访问此信息,但需要系统管理员在修改后重编所有文件。有了Makefile的存在,这是微不足道的,简单地键入make。重启sendmail,使用系统V启动脚本或service命令也将重建这些文件。
5.16 /etc/mail/virtusertable
在linux中默认安装的sendmail已经提供了对sendmail数据库的支持。要使用其他数据库必须在配置文件中进行声明。
使用 sendmail的数据库的好处是不用修改cf配置文件,也不用使用m4配置文件生成cf配置文件。一旦配置文件增添了对sendmail数据库的支持,许多配置修改就可以在sendmail数据库中进行,sendmail进程回自动读取sendmail数据库中的配置内容。
重点掌握access、virtusertable数据库的使用。
1.Sendmail虚拟域功能的实现
Sendmail虚拟域功能的实现是通过FEATURE (virtusertable)功能实现的。因为默认的mc配置文件中有以下设置:
FEATURE(`virtusertable’,`hash -o /etc/mail/virtusertable.db’)dnl
此项设置会使sendmail读取/etc/mail/virtusertable.db文件的内容,对虚拟域地址映射为实际地址。虚拟域用户的文件缺省是/etc/mail/virtusertable.db,它用/etc/mail/virtusertable文件生成。此文件格式:虚拟地址 真实地址,中间用Tab键分开。
表5.1 将虚拟域地址映射为真实地址
举例 | 说明 |
someone@otherdomain.com localuser | 发送给someone@otherdomain.com的邮件现在要发送给本机的用户localuser |
@testdomain.com test@mydomain.com | 所有发送xxx@@testdomain.com的邮件都会发送到test@mydomain.com |
@testdomain.com %1@mydomain.com | User1@testdomain.com的邮件被发送到user1@mydomain.com, User2@testdomain.com的邮件被发送到user2@mydomain.com |
@testdomain.com %1test@mydomain.com | User1@testdomain.com的邮件被发送到user1@mydomain.com, User2@testdomain.com的邮件被发送到user2@mydomain.com等 |
2.允许多个虚拟域和虚拟用户被映射到另一个地址:
admin @ 123.com shopper
admin @ xyz.org jdj
admin @ he.net lmiwtc @pg.com
@cba.com cba@aol.com
@dom/.org %1@dom2.org
在/etc/mail/virtusertable内简单键入项目,映射一个email地址到一个本地用户。这里是列出的以上的头两行。注意:用一个admin的别名域胜于一个域并不困难。
另一个项目的类型是一个简单的指向。这允许一个传入的email被发送到指定目标,这通常被人们用于简单地去记住email地址,它接纳复数。一个sendmail系统管理员能简单地在个别用户的email账号上指向想要的email地址,。上面例子中的第三行是一个email-to-pager网关的例子,有一个分配的地址,并有一个简单的别名指向它。
最后的项目的类型是指向一个整个域的email到一个给定的(本地或远程)地址的高级功能。这对虚拟域的管理员是一个非常有用的功能,它想避免设置具体的别名。这能在例子virtusertable文件中的最后两行看到。最后一行添加了一个卷曲到这个概念,并指向传入的email到用户指定的dom1.org中,目标作为一个用户在dom2.org上,举例:
jonny @ dom1.org 映射到jobby@dom2.org
3.使虚拟域用户工作的前提
⑴ 配置DNS,并设置虚拟域的MX记录
⑵ 将所有的虚拟域添加到文件/etc/mail/local-host-names中作为本地域别名。
⑶ 将所有的虚拟域添加到文家/etc/mail/access并允许RELAY。
最后执行命令:“makemap hash virtusertable.db<virtusertable”建立virtusertable数据库更新sendmail配置。