sendmail是Linux下優(yōu)秀的郵件系統(tǒng)。在不做任何設(shè)定的情況下,sendmail發(fā)出郵件的郵箱源地址形如userid@localhost.localdo,這種地址幾乎會(huì)被所有的郵箱認(rèn)定為SPAM(垃圾郵件)或直接拒收。
1、 Sendmail安裝
在CentOS下,sendmail一般默認(rèn)是隨操作系統(tǒng)一起安裝的。如果安裝系統(tǒng)時(shí)沒有安裝sendmail服務(wù),手動(dòng)安裝sendmail也很簡(jiǎn)單:
# yum install -y sendmail
# yum install -y sendmail-cf
2、 Senmail的SMTP認(rèn)證配置(不需要認(rèn)證的可忽略此步)
首先確認(rèn)saslauthd服務(wù)是否安裝或啟動(dòng)。
安裝saslauthd服務(wù):
# yum install -y saslauthd
啟動(dòng)saslauthd服務(wù):
# service saslauthd start
(1) 配置Senmail的SMTP認(rèn)證
# vi /etc/mail/sendmail.mc
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字符串可以開啟相應(yīng)的設(shè)置行。
(2) 設(shè)置Sendmail服務(wù)的網(wǎng)絡(luò)訪問權(quán)限
# vi /etc/mail/sendmail.mc
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
將127.0.0.1改為0.0.0.0,意思是任何主機(jī)都可以訪問Sendmail服務(wù)。如果僅讓某一個(gè)網(wǎng)段能夠訪問到Sendmail服務(wù),將127.0.0.1改為形如192.168.1.0/24的一個(gè)特定網(wǎng)段地址。
3、 生成Sendmail配置文件
Sendmail的配置文件由m4來生成,m4工具在sendmail-cf包中。如果系統(tǒng)無法識(shí)別m4命令,說明sendmail-cf軟件包沒有安裝。
生成Sendmail的配置文件:
m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
需要重啟Sendmail才能使配置文件生效。
4、postfix與sendmail的沖突問題
在Linux服務(wù)器(CentOS release 6.6)上配置好了sendmail后,測(cè)試發(fā)送郵件時(shí)發(fā)現(xiàn)有問題,檢查sendmail服務(wù)的狀態(tài),發(fā)現(xiàn)其處于“sendmail dead but subsys locked”, 檢查發(fā)現(xiàn)postfix服務(wù)也在運(yùn)行。只需要將postfix服務(wù)停掉即可。為什么會(huì)出現(xiàn)這種情況呢?Something was occasionally causing the postfix service to start which then caused the status of sendmail to jump to dead but subsys locked. 兩種似乎不兼容。
操作步驟:
(1):檢查sendmail服務(wù)的狀態(tài)
[root@DB-Server ~]# service sendmail statussendmail dead but subsys lockedsm-client (pid 22112) is running...
(2):檢查postfix服務(wù)的狀態(tài)
[root@DB-Server ~]# service postfix statusmaster (pid 1777) is running...
(3):停止postfix服務(wù)
[root@DB-Server ~]# service postfix stopShutting down postfix: [ OK ]
(4):重新啟動(dòng)sendmail服務(wù)
[root@DB-Server ~]# service sendmail stopShutting down sm-client: [ OK ]Shutting down sendmail: [FAILED][root@DB-Server ~]# service sendmail stop[root@DB-Server ~]# service sendmail startStarting sendmail: [ OK ]Starting sm-client: [ OK ]
(5):禁用postfix在reboot后自動(dòng)啟動(dòng)
檢查一下是否有設(shè)定 postfix 在 reboot 后自動(dòng)啟動(dòng)
chkconfig --list | grep postfix
chkconfig postfix off