2015年2月8日 星期日

CentOS Mail 安裝紀錄

最近幫客戶處理一個很煩麻的事,因為現在的廠商只會推事情,不會處理事情,一切問題只會推給客戶,證明自己沒有錯,一切的錯都是別人,所以只好處理了。

(1) Sendmail 安裝

目前CentOS 6.4在安裝過程預設可以安裝Sendmail,所以要安裝sendmail.cf這個檔案

如果沒有 /usr/share/sendmail-cf/cf 這個目錄,代表沒有安裝sendmail-cf,使用yum線上更新方式進行安裝。
[root@smtp~]# yum install sendmail-cf
[root@smtp~]# yum install cyrus-sasl-md5 cyrus-sasl-plain cyrus-sasl
[root@smtp~]# vi /etc/mail/sendmail.mc

52行 dnl TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
53 行 dnl define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
#刪掉上面兩行前面的 dnl
#注意:TRUST_AUTH_METH、define 前面不要留有空格

116行 dnl DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
#前面加上 dnl, 把這行註解起來(dnl = do not load)
#或改成下面這樣也可以
DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')dnl
 
[root@smtp~]# cp /etc/mail/sendmail.cf /etc/mail/sendmail.cf.bak

 將 sendmail-cf 的資料轉成實際可使用的設定檔:
[root@smtp~]# m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
[root@smtp~]# vi /etc/mail/access


Connect:snjh.tc.edu.tw RELAY
Connect:192.168.0 RELAY

[root@smtp~]# makemap hash /etc/mail/access < /etc/mail/access
加入想收取的網域名稱如
[root@smtp~]# vi /etc/mail/local-host-names
==================================================
xxx.edu.tw
mail.xxx.edu.tw

==================================================[root@smtp~]# /etc/rc.d/init.d/saslauthd start service saslauthd restart
[root@smtp~]# /etc/rc.d/init.d/sendmail start  service sendmail restart
[root@smtp~]# chkconfig saslauthd on
[root@smtp~]# chkconfig sendmail on

驗證SASL是否有誤
使用telnet方式檢查,出現AUTH  LOGIN PLAIN代表驗證成功

[root@smtp~]# telnet  localhost 25
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
220 localhost.localdomain ESMTP Sendmail 8.13.8/8.13.8; Tue, 20 Sep 2011 19:22:52 -0400
ehlo localhost
250-localhost.localdomain Hello localhost.localdomain [127.0.0.1], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-AUTH LOGIN PLAIN     //Sendmail有驗證功能
250-DELIVERBY
250 HELP