- 你一定要知道 DNS 的相關意義, 否則你的郵件主機肯定會發生不明原因的錯誤!
- 網路基礎也很重要,尤其是一些傳輸與檢查方面的動作;
- 正規表示法你最好要熟悉一些,因為很多郵件過濾機制是用他來處理的。
- 套件與行程管理也要熟悉,因為 mail server 應用很多額外的程式來管理郵件。
- 無論如何都要強調的,防火牆設定要正確, SELinux 記得先關閉!
(也可以不用申請 IP 的反解,不過就得要利用所謂的 relayhost 或者是 smarthost 來處理郵件轉遞的問題, 這個部分又涉及到上層 ISP 的問題,挺複雜!)
需要 DNS 的 MX (Mail eXchanger ) 及 A 標誌.
一,MUA (Mail User Agent):是『郵件使用者代理人』
二,MTA (Mail Transfer Agent):是『郵件傳送代理人』
MDA (Mail Delivery Agent):是『郵件遞送代理人』
- 收受信件:使用簡單郵件傳送協定(SMTP)
MTA 主機最主要的功能就是:將來自用戶端或者是其他 MTA 的來信收下來,這個時候 MTA 使用的是 Simple Mail Transfer Protocol (SMTP),他使用的是 port 25 啦!
- 轉遞信件:
如果該封信件的目的地並不是本身的用戶,且該封信的相關資料符合使用 MTA 的權力, 那麼咱們的 MTA 就會將該封信再傳送到下一部主機上。這即是所謂的轉遞 (Relay) 的功能。(所有的人都可以藉由這一部 MTA 幫忙進行 Relay 時,這個情況稱之為 Open Relay 的動作』,當你的 MTA 發生 Open Relay 時,問題可就大了!)
- 回應使用者的收信要求:POP 或 IMAP 協定
使用者可以透過 MTA 主機提供的郵政服務協定 (Post Office Protocol, POP) 來收下自己的信件, 也可以透過 IMAP (Internet Message Access Protocol) 協定將自己的信件保留在郵件主機上面,並進一步建立郵件資料匣等進階工作。
POP3 的收信方式:
- MUA 透過 POP3 (Post Office Protocol version 3) 的協定連接到 MTA 的 port 110,並且輸入帳號與密碼來取得正確的認證與授權;
- MTA 確認該使用者帳號/密碼沒有問題後,會前往該使用者的 Mailbox (/var/spool/mail/使用者帳號) 取得使用者的信件並傳送給使用者的 MUA 軟體上;
- 當所有的信件傳送完畢後,使用者的 mailbox 內的資料將會被刪除!
1. 修改 sendmail.mc 的參數
[root@linux ~]# vi /etc/mail/sendmail.mc
# 找到底下這一行:
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
# 將他改成這樣即可:
DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')dnl
2. 備份舊的設定檔資料
[root@linux ~]# cd /etc/mail
[root@linux mail]# mv sendmail.cf sendmail.cf.back1
3. 開始建立新的 sendmail.cf 設定檔
[root@linux mail]# m4 sendmail.mc > sendmail.cf