需求:
使用postfix為公司配置一部郵件服務器,用戶可以使用或訪問郵箱(也即要實現虛擬域功能),并且要能將所有發給root的郵件轉發給用戶tom(也即要實現別名)。公司內部網段為192.168.1.0/24,郵件服務器插有兩張網卡。
一、運行環境:
操作系統:RedHat7.0
postfix版本:postfix-20010228release-2.i386
pop3服務器版本:RedHat7.0自帶的imap-4.7c2-12
客戶端工具:outlook
二、安裝postfix和imap
1. 獲取postfix的rpm軟件包。
從 站點下載下面的postfix的rpm包:
postfix-20010228release-2.i386.rpm
2. 用以下命令查看系統是否安裝了sendmail:
[root@mail /root]# rpm –qa |grep sendmail
sendmail-8.11.0-8
3. 卸載sendmail:
[root@mail /root]# rpm -e sendmail -–nodeps
4. 用以下命令殺死運行中的sendmail進程:
[root@mail /root]# killall sendmail
如果系統提示:
sendmail: no process killed
則說明當前系統中沒有sendmail進程。
5. 安裝postfix:
[root@mail /root]# rpm -Uvh postfix-20010228release-2.i386.rpm
6. 安裝imap
插入RedHat7.0安裝盤,mount后執行:
rpm –ivh /mnt/cdrom/RedHat/RPMS/ imap-4.7c2-12.rpm
三、配置DNS
配置DNS服務器,將test.com和test.net域的MX記錄都指向郵件服務器,然后執行ndc reload命令使改動生效。
四、配置postfix
編輯postfix的主要配置文件/etc/postfix/main.cf,根據需求只需修改以下幾個參數:
1. mydomain
指明你的域名,在這里我們指定:
mydomain = test.com
2. myorigin
myorigin參數指明發件人所在的域名。如果你的用戶的郵件地址為,則該參數指定@后面的域名。在這里我們指定:
myorigin = $mydomain
3. mydestination
mydestination參數指定postfix接收郵件時收件人的域名,換句話說,也就是你的postfix
系統要接收什么樣的郵件。通常與myorigin一樣:
mydestination = $mydomain
4. mynetworks_style
設置網絡類型,我們指定:
mynetworks_style = subnet
6.mynetworks
定義可以使用的此smtp服務器發信的客戶ip地址,因為公司的ip范圍已知,所以我們指定:
mynetworks = 192.168.1.0/24
五、配置虛擬域
為了讓用戶可以使用收發郵件,我們必須配置虛擬域,在main.cf文件中,我們添加以下內容:
virtual_maps = hash:/etc/postfix/virtual
這里假定用戶tom、test、white需要使用這個虛擬域名,當然首先要在系統中添加這幾個用戶,然后建立/etc/postfix/virtual文件并添加以下內容:
test.net anything
tom
test
white
之后,用postmap命令生成虛擬域數據庫:
postmap /etc/postfix/virtual
六、配置用戶別名
假設tom是管理員,并且通過tom可以收取所有寄給root的郵件,以便管理員對系統進行監控。要實現這一點,我們必須使用郵件別名。
在main.cf文件中添加以下內容:
alias_maps = hash:/etc/postfix/aliases
其實該配置文件中已經有這一條了,只不過是被注釋掉的,可以去掉前面的#號來取消注釋。
編輯/etc/postfix/aliases文件,將
root: postfix
改為:
root: tom
用以下命令建立別名數據庫:
postalias /etc/postfix/aliases
七、配置pop3
RedHat7.0已經使用xinetd代替了以前的inetd,為了使pop3服務啟動,我們編輯/etc/xinetd.d/ipop3文件,將其中的disable = yes改為disable = no 以便啟動pop3服務。
為了使改動生效,執行以下命令:
/etc/rc.d/init.d/xinetd reload
八、啟動postfix
執行以下命令啟動postfix:
/etc/rc.d/init.d/postfix start
這樣,我們就實現了所有的需求:在/etc/postfix/virtual中配置過的用戶既可以使用 訪問郵箱,又可以使用 訪問郵箱;同時也實現了別名功能,所有發給root的郵件都將被轉發給用戶tom。根據這個例子,讀者應該很容易舉一反三,實現更復雜一些的功能。