iT邦幫忙

0

SENDMIL的寄信問題

公司有一台主機會對MAIL SERVER(SENDMAIL)進行批次性的大量寄信。

在測試時發現批次寄信時會有異常情形,就是信件都發不出去,從程式運作的LOG發現,它的錯誤是"connection refuse";而他們的作業模式是該台主機會一次送500封信給MAIL SERVER讓MAIL SERVER去發信,每封信件的收件人只有一位。在他們的程式開發方面,他們認為程式碼沒有什麼問題,而他們的疑問是.......會不會是MAIL SERVER無法一次承受這麼多的信件寄送關係。

於是,我就開始思考如何解決...........目前想到的是,在SENDMAIL上不知有沒有保護機制,當SENDMAIL收到某台主機要求寄多少信時,當超過一個數量後,它就會先暫停不收直到處理完畢,於是,我可不可以在SEDNMAIL上設定,該台主機送過來的信件數量是不受限制的。
不知我以上的想法是否正確,如正確的話,不知要如何設定呢????

這每一封信的「內容」都是一樣嗎?
或是「內容」都會根據不同的收件者,會帶出不一樣的變數值?
如果內容都一樣的話,解決方式很簡單,
若內容都不一樣,且絕對有必要是不一樣的內容的話,
才會是您要問的 sendmail 設定問題。
你好,信件的內容有90%是一樣的,只有10%是不一樣的(如姓名,地址,編號....等)
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
14
逮丸逮丸
iT邦大師 1 級 ‧ 2009-06-08 11:08:01
最佳解答

Sendmail 的 設定參數 很多,
不易有頭緒要怎麼開始試;
http://www.ilkda.com/sendmail/Tuning.htm 文章中提到,可試試:

<pre class="c" name="code">
conncontrol
ConnectionRateThrottle
greet_pause
MaxDaemonChildren
MaxQueueChildren
MaxRunnersPerQueue
ratecontrol 

透過這幾個可能的參數設定,
一方面可針對不同的主機做不同的速率限定;
(參考該文的簡單設定範例)
另方面也可提高 sendmail 的一次處理量。

22
pcboy
iT邦大師 6 級 ‧ 2009-06-07 09:55:15

請 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 連線的軟體存在 ?
去問該主機管理員看看 ?

1.星期一會把程式改變一次寄10封試試看,以了解到底是程式還是MAIL SERVER的問題。
2.MAIL SERVER上沒有反垃圾信的體存在。
3.MAIL SERVER上沒有反DDOS的連線軟體存在。

你好,今天程式人員有做檢查,發現是程式內部的問題所造成的!!!修改完程式後,就可正常運作,感謝你的意見!!!!

18
jay0123
iT邦高手 1 級 ‧ 2009-06-08 10:26:40

你自己都已經找到問題了不是
從一台主機會對 MAIL SERVER 就不成功了

在測試時發現批次寄信時會有異常情形,就是信件都發不出去,從程式運作的LOG發現,它的錯誤是"connection refuse";

所以 Mail SERVER 怎麼可能在幫你 RELAY
先確認 sendmail maillog 信是不是真的進來了
由我看來信根本就沒進 Mail Server

我要發表回答

立即登入回答