介紹:
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