最近公司因項目需要,需要在一台Solaris主機發郵件到指定的郵件服務器的用戶中,經過摸索後,終得解決,現將過程記錄如下:
1、環境:
項目主機: IP: 192.168.1.32 OS:Solaris 8
郵件服務器:IP: 192.168.1.10 OS:Solaris 8
MTA: Postfix(需smtp驗證)
2、需求:即在項目主機中程序調用系統命令,發郵件給郵件服務器的一些用戶.
3、修改項目主機中一些文件(注意紅色部分):
cat /etc/hosts
#
# Internet host table
#
127.0.0.1 localhost
192.168.1.32 Pj loghost
/etc/mail/sendmail.cf文件中以下兩行改成如下:
#Dj$w.Foo.COM
CP.
# "Smart" relay host (may be null)
#DSmailhost$?m.$m$.
然後重啟一下sendmail(本想restart,居然沒有)
#/etc/init.d/sendmail stop
#/etc/init.d/sednmail start
4、測試發郵件,如果正確,即可收到郵件,有關命令mailx的詳細使用,請參考man mailx:
5、排錯
如沒有收到郵件,在項目主機中執行mail,看看是否有系統的退信,再根據退信的原因查找,如reason: 501 5.1.7 Bad sender address syntax;再到郵件服務器上查找郵件的日志,是否有錯誤,如warning: Illegal address syntax from unknown等,然後再根據這些錯誤來解決。
以上過程在我的環境中測試成功。