在客戶的環境有時不能直接發送郵件,而是要利用客戶端的郵件伺服器發送,這通常透過sendmail.cf 的 DS 參數設定就好,但客戶環境有時會需要帳號密碼驗證才能 relay ,這時就需要了解客戶是採用哪種方式驗證,可以透過 telnet 來了解,如下:
shell># telnet mail.test.com.tw 25
Trying 60.199.200.208...
Connected to mail.test.com.tw
Escape character is '^]'.
220 mail.test.com.tw ESMTP Postfix
ehlo localhost
250-mail.test.com.tw
250-PIPELINING
250-SIZE 30760000
250-VRFY
250-ETRN
250-AUTH PLAIN CRAM-MD5 DIGEST-MD5 LOGIN
250-AUTH=PLAIN CRAM-MD5 DIGEST-MD5 LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
透過 AUTH 可以了解到這台郵件主機是採用 PLAIN CRAM-MD5 DIGEST-MD5 LOGIN 這幾種方式驗證,若確定要採用 CRAM-MD5 DIGEST-MD5 這兩種方式驗證,自己的 sendmail 也要支援才能相互溝通,一樣可以使用 telnet 來驗證自己的主機是否支援。
接下來設定帳號密碼資訊
shell># vim /etc/mail/authinfo
AuthInfo:other.dom “U:user” “I:user” “P:secret” “M:DIGEST-MD5 CRAM-MD5”
shell># makemap hash /etc/mail/authinfo.db < /etc/mail/authinfo
確保帳密資訊安全
shell># chmod 600 authinfo
增加 RELAY 伺服器參數
shell># vim /etc/mail/sendmail.cf
DSrelay.test2.org.tw
重新啟動sendmail
shell># service sendmail restart
轉貼至http://beakdoosan.blogspot.tw/