Sendmail配置終極指南
在眾多的郵件服務(wù)器軟件中,Sendmail總是能夠在每一次評(píng)比中獲得榮譽(yù),從而使它成為目前使用最為廣泛的一種E-mail服務(wù)器。但是,說起Sendmail的配置,很多人會(huì)感到頭痛。長期以來,很多人為此不厭其煩地一遍又一遍地在BBS、新聞組上詢問其配置。筆者希望借助本文對(duì)Sendmail的使用作一個(gè)力求完滿的說明。
本文引用地址:http://butianyuan.cn/article/201610/305585.htm下載及安裝
Sendmail的最新版本為:8.11.3,文件大小為1.2MB。
1.解壓縮
# tar -zxvf Sendmail-8.11.3.tar.gz
#cd Sendmail-8.11.3
如果軟件包是rpm格式,則解壓安裝如下:
#rpm -ivh Sendmail-8.11.3-src.rpm
2.編譯
# ./Build
如果不出什么問題,編譯通過,編譯完成后會(huì)自動(dòng)生成目錄:obj.Linux.2.2.18.i686(這是筆者的核心名稱,也許你的內(nèi)核名稱與此不同)。
3.安裝
#./Build install
如果是rpm 格式的軟件包,則應(yīng)編譯如下:
# rpm -ba Sendmail-8.11.1.spec
#rpm -ivh Sendmail*.rpm
至此編譯、安裝完成
配置策略
sendmail.cf是Sendmail的配置文件,它全權(quán)決定了Sendmail的屬性。這個(gè)文件定義郵件服務(wù)器為哪個(gè)域工作。其中的內(nèi)容為特定宏,大多數(shù)人對(duì)它都抱有恐懼心理,因?yàn)槲募械暮甏a實(shí)在是太多。sendmail.cf通常是由一個(gè)以mc結(jié)尾的文件編譯產(chǎn)生。如Redhat自帶一個(gè)redhat.mc,用戶可以自己修改其中的一些設(shè)置,使之適合自己。筆者的sendmail.mc 文件內(nèi)容如下:
divert(-1)
dnl This is the macro config file used to generate the /etc/sendmail.cf
dnl file. If you modify thei file you will have to regenerate the
dnl /etc/sendmail.cf by running this macro config through the m4
dnl preprocessor:
dnl m4 /etc/sendmail.mc > /etc/sendmail.cf
dnl You will need to have the Sendmail-cf package installed for this to work.
include(`/usr/lib/Sendmail-cf/m4/cf.m4)
define(`confDEF_USER_ID,``8:12)
OSTYPE(`Linux)
undefine(`UUCP_RELAY)
undefine(`BITNET_RELAY)
define(`confAUTO_REBUILD)
define(`confTO_CONNECT, `1m)
define(`confTRY_NULL_MX_LIST,true)
define(`confDONT_PROBE_INTERFACES,true)
define(`PROCMAIL_MAILER_PATH,`/usr/bin/procmail)
FEATURE(`smrsh,`/usr/sbin/smrsh)
FEATURE(`mailertable,`hash -o /etc/mail/mailertable)
FEATURE(`virtusertable,`hash -o /etc/mail/virtusertable)
FEATURE(redirect)
FEATURE(always_add_domain)
FEATURE(use_cw_file)
FEATURE(local_procmail)
MAILER(smtp)
MAILER(procmail)
FEATURE(`access_db)
FEATURE(`blacklist_recipients)
dnl We strongly recommend to comment this one out if you want to protect
dnl yourself from spam. However, the laptop and users on computers that do
dnl not hav 24x7 DNS do need this.
FEATURE(`accept_unresolvable_domains)
dnl FEATURE(`relay_based_on_MX)
編譯sendmail.mc以產(chǎn)生需要的sendmail.cf文件:# m4 /etc/sendmail.mc > /etc/mail/sendmail.cf。
生成sendmail.cf以后,編輯sendmail.cf。在文件中,查找DS,在其后加入郵件服務(wù)器名、域名,這樣可以保證當(dāng)你以u(píng)sername@mail.domain.com或username@domain.com發(fā)信時(shí),用戶都可以收到,如下所示:
# Alias for this host
Cw mail.domain.com domain.com
然后,就可以啟動(dòng)Sendmail了:# /usr/sbin/Sendmail -bd -q20m。
Sendmail 8.9.x以后的版本,在缺省情況下,都默認(rèn)不對(duì)未驗(yàn)證的計(jì)算機(jī)進(jìn)行轉(zhuǎn)發(fā)(Relay),所以如果要為本機(jī)以外的其他計(jì)算機(jī)進(jìn)行郵件轉(zhuǎn)發(fā),這時(shí),應(yīng)該在相應(yīng)的配置文件中明確告訴Sendmail要對(duì)哪幾個(gè)主機(jī)進(jìn)行轉(zhuǎn)發(fā)。如果不考慮驗(yàn)證,對(duì)任何主機(jī)都進(jìn)行轉(zhuǎn)發(fā)的話,可以在sedmail.mc文件中加入一行:FEATURE(promiscuous_relay)。
不過,如果你的計(jì)算機(jī)是放在公網(wǎng)上的話,建議你不要這樣做,因?yàn)檫@樣做了以后,任何人都可以使用你的計(jì)算機(jī)進(jìn)行轉(zhuǎn)發(fā)郵件了,特別是一些別有用心的人或一些兜售客(spammer,垃圾郵件制造者)會(huì)利用你的郵件服務(wù)器的轉(zhuǎn)發(fā)功能亂發(fā)大量的垃圾郵件。
使用說明
通常情況下,Sendmail不會(huì)為郵件服務(wù)Relay信息,這樣可以防止一些有惡意的人利用別人的郵件服務(wù)器亂發(fā)郵件。缺省情況下,Sendmail關(guān)閉了Relay功能。如果你要為別的服務(wù)器Relay郵件,可以進(jìn)行如下設(shè)置——在access文件中加入要為其Relay信件的機(jī)器,格式為:
hostname RELAY
ipaddress RELAY
如果要為一個(gè)域內(nèi)多個(gè)機(jī)器Relay信件,則可以在/etc/mail/access文件中直接加入其子網(wǎng)IP或域名,如下所示:
access文件內(nèi)容:
domainname.com RELAY(允許為域domainname的所有計(jì)算機(jī)relay郵件)
localhost RELAY
192.168.1.0 RELAY (為192.168.1.0此網(wǎng)內(nèi)所有機(jī)器relay郵件)
此文件惟一決定了哪些機(jī)器、哪個(gè)域可以使用郵件服務(wù)器轉(zhuǎn)發(fā)郵件。完成后需要進(jìn)行編譯:#makemap hash access.db access。
其他配置的文件關(guān)系不是很大,可以暫時(shí)使用缺省安裝的內(nèi)容。至此,Sendmail應(yīng)該可以正常工作了。
接下來是測試郵件服務(wù)器的郵件發(fā)送功能,注意:測試時(shí),不要只對(duì)本地用戶進(jìn)行測試,如:你的域?yàn)閍bc.com,測試時(shí),不要只在郵件服務(wù)器上測試user1@abc.com用戶。因?yàn)?,此時(shí)user1是本地用戶,所以郵件服務(wù)器可以對(duì)其進(jìn)行Relay。你應(yīng)該從局域網(wǎng)上的另一臺(tái)機(jī)器使用Outlook等郵件客戶端對(duì)服務(wù)器進(jìn)行測試。
固定IP用戶(包括跨國性公司的用戶)沒有問題,可以在數(shù)據(jù)庫中加入其固定IP。對(duì)于經(jīng)常出差在外的人,不適用。
排錯(cuò)
錯(cuò)誤1.在Outlook中正確配置POP及SMTP服務(wù)器的地址后,出現(xiàn)如下錯(cuò)誤:
評(píng)論