CentOS 6下使用sendmail搭建簡單郵件傳輸伺服器

介紹:

sendmail是linux/unix下比較常用的開源免費郵件傳輸代理程式(MTA)。

需要安裝的軟體包:

sendmail(郵件傳輸代理,用於傳送及轉發郵件,使用smtp協議)
sendmail-cf(包含配置過程中需要使用的m4工具)

安裝命令:

yum install -y sendmail sendmail-cf

DNS配置:

DNS伺服器的配置方法參考此篇文章:

https://www.ibadboy.net/archives/1027.html

最終要求新增一個sx.com的域名並配置DNS解析為如下形式:

本實驗中DNS伺服器IP地址:192.168.162.244,郵件伺服器IP地址:192.168.162.245。

注意MX記錄要寫在前面(如上圖),否則會出錯。

配置完DNS伺服器之後別忘了將郵件傳輸伺服器的DNS修改為DNS伺服器的地址,否則會導致郵件傳輸伺服器無法轉發郵件哦。

Centos下修改DNS的方法參考此篇文章:

https://www.ibadboy.net/archives/1055.html

sendmail配置部分:

sendmail主配置檔案:

實際上sandmail的主配置檔案是/etc/mail/sendmail.cf,但因為該配置檔案使用宏語言編寫,一般人難以看懂更別提編輯了。
所以sendmail提供了一個/etc/mail/sendmail.mc檔案,此檔案可讀性遠遠大於sendmail.cf,使用者可以直接編輯sendmail.mc檔案再透過m4工具生成相對應的sendmail.cf配置檔案供sendmail讀取。

使用vim文字編輯器開啟sendmail.mc

vim /etc/mail/sendmail.mc

找到第116行(因軟體版本差異行號可能對不上),如下圖,將此行中Addr=127.0.0.1修改為本機公網IP地址(MX記錄對應的域名所解析出的IP地址,本實驗中為192.168.162.245),也可以改為0.0.0.0。這裡是定義讓sendmail監聽哪個地址,預設是監聽127.0.0.1(本地迴環),修改為0.0.0.0是監聽所有地址,也可以像本實驗中設定的只監聽某個指定的公網地址。

修改後如圖:

儲存並退出。

使用m4工具生成與剛剛編輯的sendmail.mc相對應的sendmail.cf檔案

m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf

編輯/etc/mail/access檔案定義允許接收或轉發哪些主機的郵件。

vim /etc/mail/access

如上圖,定義了允許接收並轉發192.168.162網段中所有主機的郵件。

關於/etc/mail/access配置檔案的詳細配置方法請轉到此篇文章瞭解:

https://www.ibadboy.net/archives/676.html

儲存並退出

生成與剛剛編輯的/etc/mail/access相對應的資料庫檔案。

makemap hash /etc/mail/access < /etc/mail/access

編輯/etc/mail/local-host-names定義本機的域(如不定義,預設以主機名作為本機域),當sendmail收到郵件時會依據此檔案來判斷郵件的目標地址是本域還是其他域,如果是本域則投遞到對應賬號的郵箱內,如果是其他域則進行轉發。

vim /etc/mail/local-host-names

配置方法很簡單,一行一個域名即可,如下圖。

儲存並退出,自此sendmail部分配置完成。

啟動服務:

在保證selinux及防火牆均已關閉的情況下啟動sendmail服務。

service sendmail start

但需要注意的是,一個完整的郵件系統不應該只包含使用SMTP協議的MTA(郵件傳輸代理),還應該包括使用POP3或IMAP協議的MRA(郵件接收代理)

推薦同時配置完MTA(郵件傳輸代理)和MRA(郵件接收代理)後一起進行最後的服務測試。

關於MRA(郵件接收代理)的配置參考此篇文章:

https://www.ibadboy.net/archives/958.html

Leave a Reply

Your email address will not be published. Required fields are marked *

Captcha Code