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