1./etc/mail 是現(xiàn)在被尊重的默認sendmail配置目錄
2.Virtusertable文件用于映射虛擬地址到真實的地址
3.Access文件定義拒絕或接收來自指定域的email
4. 在/etc/mail內(nèi)同樣有其它文件
他們中的兩個mailertable和domaintable默認的sendmail配置不使用,但是包含的不完全。
5. 在/etc/mail中出現(xiàn)的另一個文件是Makefile
注意在/etc/mail中的所有文件在被sendmail使用之前必須被混編。這樣允許sendmail守護進程快速地訪問此信息,但需要系統(tǒng)管理員在修改后重編所有文件。有了Makefile的存在,這是微不足道的,簡單地鍵入make。重啟sendmail,使用系統(tǒng)V啟動腳本或service命令也將重建這些文件。
5.16 /etc/mail/virtusertable
在linux中默認安裝的sendmail已經(jīng)提供了對sendmail數(shù)據(jù)庫的支持。要使用其他數(shù)據(jù)庫必須在配置文件中進行聲明。
使用 sendmail的數(shù)據(jù)庫的好處是不用修改cf配置文件,也不用使用m4配置文件生成cf配置文件。一旦配置文件增添了對sendmail數(shù)據(jù)庫的支持,許多配置修改就可以在sendmail數(shù)據(jù)庫中進行,sendmail進程回自動讀取sendmail數(shù)據(jù)庫中的配置內(nèi)容。
重點掌握access、virtusertable數(shù)據(jù)庫的使用。
1.Sendmail虛擬域功能的實現(xiàn)
Sendmail虛擬域功能的實現(xiàn)是通過FEATURE (virtusertable)功能實現(xiàn)的。因為默認的mc配置文件中有以下設置:
FEATURE(`virtusertable’,`hash -o /etc/mail/virtusertable.db’)dnl
此項設置會使sendmail讀取/etc/mail/virtusertable.db文件的內(nèi)容,對虛擬域地址映射為實際地址。虛擬域用戶的文件缺省是/etc/mail/virtusertable.db,它用/etc/mail/virtusertable文件生成。此文件格式:虛擬地址 真實地址,中間用Tab鍵分開。
表5.1 將虛擬域地址映射為真實地址
舉例 | 說明 |
someone@otherdomain.com localuser | 發(fā)送給someone@otherdomain.com的郵件現(xiàn)在要發(fā)送給本機的用戶localuser |
@testdomain.com test@mydomain.com | 所有發(fā)送xxx@@testdomain.com的郵件都會發(fā)送到test@mydomain.com |
@testdomain.com %1@mydomain.com | User1@testdomain.com的郵件被發(fā)送到user1@mydomain.com, User2@testdomain.com的郵件被發(fā)送到user2@mydomain.com |
@testdomain.com %1test@mydomain.com | User1@testdomain.com的郵件被發(fā)送到user1@mydomain.com, User2@testdomain.com的郵件被發(fā)送到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內(nèi)簡單鍵入項目,映射一個email地址到一個本地用戶。這里是列出的以上的頭兩行。注意:用一個admin的別名域勝于一個域并不困難。
另一個項目的類型是一個簡單的指向。這允許一個傳入的email被發(fā)送到指定目標,這通常被人們用于簡單地去記住email地址,它接納復數(shù)。一個sendmail系統(tǒng)管理員能簡單地在個別用戶的email賬號上指向想要的email地址,。上面例子中的第三行是一個email-to-pager網(wǎng)關的例子,有一個分配的地址,并有一個簡單的別名指向它。
最后的項目的類型是指向一個整個域的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。
最后執(zhí)行命令:“makemap hash virtusertable.db<virtusertable”建立virtusertable數(shù)據(jù)庫更新sendmail配置。