標籤:
endmail是Linux下優秀的郵件系統。在不做任何設定的情況下,sendmail發出郵件的郵箱源地址形如[email protected],這種地址幾乎會被所有的郵箱認定為SPAM(垃圾郵件)或直接拒收。
1、 Sendmail安裝
在CentOS下,sendmail一般預設是隨作業系統一起安裝的。如果安裝系統時沒有安裝sendmail服務,手動安裝sendmail也很簡單:
view plain copy
# yum install -y sendmail
# yum install -y sendmail-cf
2、 Senmail的SMTP認證配置(不需要認證的可忽略此步)
首先確認saslauthd服務是否安裝或啟動。
安裝saslauthd服務:# yum install -y saslauthd
啟動saslauthd服務:# service saslauthd start
(1) 配置Senmail的SMTP認證
# vi /etc/mail/sendmail.mc
view plain copy
dnl TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN‘)dnl
dnl define(`confAUTH_MECHANISMS‘, `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN‘)dnl
將上面兩行的dnl去掉。在sendmail檔案中,dnl表示該行為注釋行,是無效的,因此通過去除行首的dnl字串可以開啟相應的設定行。
(2) 設定Sendmail服務的網路存取權限
# vi /etc/mail/sendmail.mc
view plain copy
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA‘)dnl
將127.0.0.1改為0.0.0.0,意思是任何主機都可以訪問Sendmail服務。如果僅讓某一個網段能夠訪問到Sendmail服務,將127.0.0.1改為形如192.168.1.0/24的一個特定網段地址。
3、 產生Sendmail設定檔
Sendmail的設定檔由m4來產生,m4工具在sendmail-cf包中。如果系統無法識別m4命令,說明sendmail-cf軟體包沒有安裝。
產生Sendmail的設定檔:
view plain copy
m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
需要重啟Sendmail才能使設定檔生效。
4、 Sendmail郵件網域名稱配置
配置sendmail使用合法的網域名稱分兩步,修改sendmail的設定檔和添加網域名稱MX記錄。
sendmail可以直接使用 “-r [email protected]” 參數來以任意源地址發送郵件,但目前主流的郵箱都會將源地址和反向解析IP進行比較,如果解析不到或是解析的IP不匹配,輕則將郵件直接歸為SPAM,嚴重的就直接拒絕接收。
MX記錄(Mail Exchanger Record)主要是內送郵件時使用,即當投遞一封新郵件時,會查詢收件者網域名稱的MX記錄,然後通過MX記錄得到的IP地址進行投遞。同時郵件廠商在內送郵件的時候也會將源地址和MX記錄進行比較,作為垃圾郵件的判斷標準之一。
第一步:添加網域名稱
(1) 將網域名稱加入到local-host-names檔案
# vi /etc/mail/local-host-names,添加
view plain copy
sunchis.com
(2) 修改submit.cf檔案
# vi /etc/mail/submit.cf,找到行 #Dj$w.Foo.COM,修改為
view plain copy
Djsunchis.com
至此,sendmail郵件命名配置完畢,重啟sendmail使配置生效。
第二步:添加網域名稱MX記錄
找到修改網域名稱資訊的頁面(不同的網域名稱註冊商頁面不相同),修改結果因網域名稱商的不同最遲會在24小時內生效。
(1) 添加網域名稱A記錄mail,直接指向你的郵件伺服器的靜態IP地址:
(2) 添加(或是修改)網域名稱的MX記錄,形如:
(3) 使用nslookup檢測MX記錄是否能正確解析到郵件伺服器
view plain copy
# nslookup
> set q=mx
> sunchis.com
Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
sunchis.com mail exchanger = 10 mail.sunchis.com.
Authoritative answers can be found from:
>
OK,已經正確解析到郵件伺服器所對應的網域名稱。
5、 Relaying denied(拒絕投遞)的解決
出現 550 5.7.1 <[email protected]>... Relaying denied. IP name lookup failed [192.168.1.133] 異常時,原因是把sendmail當做郵件中轉站,需要將用戶端的IP地址加入到access設定檔中。
# vi /etc/mail/access,添加
view plain copy
Connect:192.168.1.133 RELAY
重建存取權限的資料庫:
view plain copy
# cd /etc/mail/
# makemap hash access.db < access
這樣,問題就會得到解決.
CentOS sendmail安裝及郵件網域名稱配置