公司有一台主機會對MAIL SERVER(SENDMAIL)進行批次性的大量寄信。
在測試時發現批次寄信時會有異常情形,就是信件都發不出去,從程式運作的LOG發現,它的錯誤是"connection refuse";而他們的作業模式是該台主機會一次送500封信給MAIL SERVER讓MAIL SERVER去發信,每封信件的收件人只有一位。在他們的程式開發方面,他們認為程式碼沒有什麼問題,而他們的疑問是.......會不會是MAIL SERVER無法一次承受這麼多的信件寄送關係。
於是,我就開始思考如何解決...........目前想到的是,在SENDMAIL上不知有沒有保護機制,當SENDMAIL收到某台主機要求寄多少信時,當超過一個數量後,它就會先暫停不收直到處理完畢,於是,我可不可以在SEDNMAIL上設定,該台主機送過來的信件數量是不受限制的。
不知我以上的想法是否正確,如正確的話,不知要如何設定呢????
Sendmail 的 設定參數 很多,
不易有頭緒要怎麼開始試;
在 http://www.ilkda.com/sendmail/Tuning.htm 文章中提到,可試試:
<pre class="c" name="code">
conncontrol
ConnectionRateThrottle
greet_pause
MaxDaemonChildren
MaxQueueChildren
MaxRunnersPerQueue
ratecontrol
透過這幾個可能的參數設定,
一方面可針對不同的主機做不同的速率限定;
(參考該文的簡單設定範例)
另方面也可提高 sendmail 的一次處理量。
請 Programmer 改程式測試啊 ~
如果懷疑一次送500封信產生這種問題
那一次1封是否正常 ? 如果連一次一封也不行,就不是MAIL SERVER無法一次承受這麼多的信件寄送關係。
那一次10封是否正常 ?
那一次100封是否正常 ?
一次送500封信給MAIL SERVER讓MAIL SERVER去發信,每封信件的收件人只有一位。
檢查 mail log
是否這 500 封從第一封就是 connection refuse ?
還是第 N 封才這樣 ?
會不會是MAIL SERVER無法一次承受這麼多的信件寄送關係
懷疑不是,小弟公司用 sendmail 發個數萬封電子報也不會 connection refuse
但是不敢保證,因為不同版本 sendmail 情況可能不同
不同 Unix-Like 對 sendmail 預設值可能不同
另外就是 mail server 上可能有 反垃圾信軟體 存在 ?
或者防 DDoS 連線的軟體存在 ?
去問該主機管理員看看 ?
你自己都已經找到問題了不是
從一台主機會對 MAIL SERVER 就不成功了
在測試時發現批次寄信時會有異常情形,就是信件都發不出去,從程式運作的LOG發現,它的錯誤是"connection refuse";
所以 Mail SERVER 怎麼可能在幫你 RELAY
先確認 sendmail maillog 信是不是真的進來了
由我看來信根本就沒進 Mail Server