1. 安裝并,查看Postfix運(yùn)行狀況
Postfix在CentOS中是默認(rèn)配置好了的,你只需要通過(guò)service postfix status 來(lái)查看Postfix的運(yùn)行情況。但是在ubuntu16中并沒(méi)有默認(rèn)安裝,所以要使用apt-get install -y postfix進(jìn)行安裝。
CentOS中Postfix的安裝和運(yùn)行:


ubuntu16中Postfix的安裝和運(yùn)行:


這里可以看出都已經(jīng)安裝并運(yùn)行起來(lái),沒(méi)有任何問(wèn)題。
2. Postfix配置
Postfix的配置文件安裝完成后會(huì)自動(dòng)保存在/etc/postfix/文件夾中,這里ubuntu和CentOS都是同樣的位置(以下如果不特殊指出ubuntu和CentOS都是一樣):

這里最主要的配置文件是man.cf,但是并不建議通過(guò)修改這個(gè)文件本身去修改Postfix配置,而是通過(guò)postconf命令進(jìn)行修改:
-
postconf -d(default)顯示默認(rèn)Postfix配置,一般配合 grep 查詢目標(biāo)配置。 -
postconf -n(now)顯示當(dāng)前Postfix配置,一般也是配合grep 查詢目標(biāo)配置


-
postconf -e "key = value"(這里的""不能省略)則是修改當(dāng)前的配置。這種修改方式的好處是,如果你輸入了配置文件不匹配的規(guī)則,用postconf -d或者-n是會(huì)提示你不能用的參數(shù),必須要去main.cf配置文件去刪掉:
Paste_Image.png
Paste_Image.png
我們還可以通過(guò)netstat -tupln | grep master命令去查看當(dāng)前Postfix的監(jiān)聽(tīng)端口(這里的-tupln是指列出所有TCP和UDP正在Listen的端口,p 顯示建立相關(guān)鏈接的程序名,-n 選項(xiàng)禁用域名解析功能):

這里已經(jīng)將監(jiān)聽(tīng)端口改成了ALL,是因?yàn)槲覀冃枰牟恢皇悄J(rèn)值當(dāng)中監(jiān)聽(tīng)本機(jī)的25端口,而是需要監(jiān)聽(tīng)來(lái)自其他網(wǎng)絡(luò)的25端口,這樣才可以互相通信。
下面我們需要更改下Postfix配置文件中的myhostname和mydomain兩個(gè)選項(xiàng),因?yàn)樗l(fā)郵件“@”符號(hào)后所跟的就是你的主機(jī)名,也就是myhostname,一般默認(rèn)myhostname就是本機(jī)的hostname,但是如果你更改了myhostname,而本機(jī)的hostname沒(méi)有更改,就要寫你myhostname,如下:

從這里看出myhostname=mail.jovi.net,而hostname為Centos-V。到此即便將本機(jī)的BIND(DNS)服務(wù)關(guān)掉也是可以在本機(jī)內(nèi)的用戶互相通信發(fā)送email的,因?yàn)榇藭r(shí)只是通過(guò)Postfix服務(wù)進(jìn)行本機(jī)解析,主要是通過(guò):

mydestiantion 來(lái)進(jìn)行接收發(fā)送郵件,這個(gè)的意思是只要我們發(fā)送的郵件是給我們本機(jī)所在用戶,也就是
/var/spool/mail目錄下的用戶
都是可以互相發(fā)送郵件,而從上上一張圖可以看出
mydestination = $myhostname,localhost.$mydomain,localhost。意思是在本機(jī)發(fā)送郵件給alice,david,jovi等等這些用戶,并且@符號(hào)后跟mail.jovi.net($myhostname),或者localhost.jovi.net($mydomain = jovi.net)或者,localhost。都是可以發(fā)送通過(guò)并且成功接收的。
這里的postfix配置需要注意的一點(diǎn)就是每一次以postconf -e修改配置后都是需要重啟postfix服務(wù)來(lái)讓新配置生效的
3. 本地發(fā)送郵件驗(yàn)證Postfix正常運(yùn)行



從上面3 個(gè)圖都可以看出 通過(guò)用戶名@mydestionation的方式都是可以成功發(fā)送并接受郵件的,這里發(fā)送郵件的命令是:mail -vs "subject" username@mydestionation -vs的意思是詳細(xì)顯示信息和輸入主題,輸入此命令后,敲回車,然后就可以輸入正文了,最后以Ctrl+d結(jié)束寫郵件并發(fā)送。
如果想要?jiǎng)h除某用戶下的所有郵件,只需要將其/var/spool/mail目錄下的文件清空就可以了,可以使用echo "" > /var/spool/mail/jovi命令
4 .配置BIND服務(wù)
以上都是在本地如何驗(yàn)證Postfix服務(wù)運(yùn)行正常并進(jìn)行本機(jī)用戶的郵件互通?,F(xiàn)在如果我們想要本機(jī)和其他機(jī)器進(jìn)行通信就必須使用DNS,這是Postfix非本機(jī)互通的前提:



上面是將named-chroot服務(wù)打開(kāi),以及修改本地域名服務(wù)器配置文件,修改為本機(jī)(DNS服務(wù)器)IP,CentOS和ubuntu都是需要修改的,這里是將CentOS作為DNS服務(wù)器。
然后修改
/var/named/chroot/etc/named.conf文件,添加以下兩個(gè)域名,方便后面進(jìn)行解析
然后配置這2個(gè)zone文件:



因?yàn)槭荂entOS作為DNS服務(wù)器,所以在用ubuntu試著連接CentOS的時(shí)候,先要將CentOS防火墻以及Selinux設(shè)置為可連接:

上面設(shè)置以后就可以用ubuntu連接CentOS了

這樣就可以看到無(wú)論是在CentOS還是ubuntu上都是可以解析到我們所需要發(fā)送的兩個(gè)主機(jī)名,這里也要檢查下ubuntu上的Postfix中的myhostname是否是我們所指定的主機(jī)名。
還有就是要將之前說(shuō)過(guò)的監(jiān)聽(tīng)服務(wù)設(shè)置成所有:

5. 互通郵件
CentOS ====>>> ubuntu


ubuntu====>>> CentOS


如果其中有什么問(wèn)題,最先考慮的是配置更改后是否有重啟服務(wù)讓配置生效??!

