天天看點

LINUX下通過外部SMTP發郵件 (直接抛棄sendmail和postfix)

至于sentmail和postfix的配置有多麼麻煩老衲在這裡就不多廢話了...反正老衲是配置了N個小時,最終弄的頭暈眼花也沒弄好...

下面的方法可以讓你完全擺脫這兩個工具...當然,你要是想做郵件伺服器的話就令當别論了...你要是隻想讓伺服器自動發個郵件什麼的,用下面的就行了

通常的做法都是,關閉本機的sendmail服務或者postfix服務,

#執行下面的指令,各位大俠都對号入座吧
#sendmial
service sendmail stop
chkconfig sendmail off
#postfix
service postfix stop
chkconfig postfix off

#再狠一點就直接解除安裝吧..
yum remove sendmail
yum remove postfix      

然後修改/etc/mail.rc,增加一下類似N行,指定外部的smtp伺服器位址、帳号密碼等。

1 # vi /etc/mail.rc  
2  set [email protected]
3  set smtp=smtp.qq.com  
4  set smtp-auth-user=123456
5  set smtp-auth-password=sbsbsbsb
6  set smtp-auth=login        

然後通過指令來發送郵件

echo  hello word | mail -s " title" [email protected]        

可是發現在RHEL6運作是沒有問題,在RHEL5下,mail指令始終是調用本地的sendmail服務來發送郵件的。

到底RHEL6和RHEL5下的mail和mailx又有着什麼關系呢?

RHEL6下

mail  連結到 mailx 指令,mailx版本為12.4

# rpm -qa|grep mailx  

mailx-12.4-6.el6.x86_64  

# ll /bin/mail*     

lrwxrwxrwx. 1 root root      5  7月 22 2011 /bin/mail -> mailx  

-rwxr-xr-x. 1 root root 390424  2月 16 2010 /bin/mailx  

# mail -V  

12.4 7/29/08  

RHEL5下,則發現了一些不同

mailx  連結到  mail 指令,mailx版本為8.1

# rpm -qa|grep mailx  

mailx-8.1.1-44.2.2  

# ll /bin/mail*  

-rwxr-xr-x 1 root mail 84856 Jun  6  2007 /bin/mail  

lrwxrwxrwx 1 root root     4 Apr 12 18:03 /bin/mailx -> mail  

# mail -V     此處運作就會出錯,沒有-V這個參數  

也就是說,在RHEL6\5下,運作mail 和mailx,實際上都是一個指令,而mail版本不同,導緻了RHEL5下mail指令無法調用外部SMTP伺服器。

安裝mailx新版本可解決此問題。

下載下傳位址:

代開這個網站。自己選一個下載下傳位址

1 http://www.filewatcher.com/m/mailx-12.4.tar.bz2.271482.0.0.html      

下載下傳後

# tar jxvf mailx-12.4.tar.bz2  
 # cd mailx-12.4  
 # make  
 # make install UCBINSTALL=/usr/bin/install       

檢視mailx程式預設安裝位置、及版本

# whereis mailx  
 mailx: /usr/local/bin/mailx /usr/share/man/man1p/mailx.1p.gz  
 # mailx -V  
 12.4 7/29/08       

安裝後的mailx使用的是 /etc/nail.rc 配置,不是 /etc/mail.rc 這個需要注意下。vi編輯,按下G  ,然後在行尾添加如下N行

# vi /etc/nail.rc  (看出亮點了嗎?)
 2  set [email protected]
 3  set smtp=smtp.qq.com  
 4  set smtp-auth-user=123456
 5  set smtp-auth-password=sbsbsbsb
 6  set smtp-auth=login        

 然後通過指令來發送郵件

echo  hello word | mailx -v -s " title" [email protected]       

就收到郵件了.... 哥比較懶,就不給你截圖了...反正我是收到了。

成功發送的話,就可以看到類似的提示
 235 2.7.0 Authentication successful  
 >>> MAIL FROM:<[email protected]>  
 250 2.1.0 Ok  
 >>> RCPT TO:<[email protected]>  
 250 2.1.5 Ok  
 >>> DATA  
 354 End data with <CR><LF>.<CR><LF>  
 >>> .  
 250 2.0.0 Ok: queued as 9291963494  
 >>> QUIT  
 221 2.0.0 Bye        
LINUX下通過外部SMTP發郵件 (直接抛棄sendmail和postfix)