線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2290
推到 Plurk!
推到 Facebook!

用NMSMTP1 發上千封信,伺服器來得及處理嘛?

答題得分者是:pcboy
joana
一般會員


發表:35
回覆:70
積分:21
註冊:2005-09-02

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-11-02 10:57:45 IP:122.124.xxx.xxx 訂閱
因第一次寫發E_MAIL程式,所以想請教各位大德
最近我在這裡下載了一個發送電子報的程式(http://delphi.ktop.com.tw/topic.php?TOPIC_ID=350)

如果所要發E_MAIL的對象,內文都不一樣,夾檔內容也不同,那就無法整批發了,就得一封一封發信.
如果夾檔之檔案有1-2MB,且一次都要發上千封信,也就是每發一封信要 CONNECT 一次,再 DISCONNECT
,這樣伺服器是否來得及處理? 還是有更好之方法 ?
還有這支程式有一個 [失敗重試次數] 之功能, 但好像沒有什麼作用,要如做到 [失敗重試] ?

請不吝指導!!!

程式如下
try
NMSMTP1.PostMessage.FromAddress := edit3.text;
NMSMTP1.PostMessage.FromName := edit6.text;
NMSMTP1.PostMessage.Subject := edit5.text;
NMSMTP1.PostMessage.ToBlindCarbonCopy.Clear;
NMSMTP1.PostMessage.ToBlindCarbonCopy.Add(edit3.text);
cc:=0;
for i:=no1-1 to no2-1 do
if trim(listbox1.items[i])<>'' then begin
NMSMTP1.PostMessage.ToBlindCarbonCopy.Add(listbox1.items[i]);
inc(cc);
if cc=1 then caption:=caption ' ' listbox1.items[i];
if i=no2-1 then caption:=caption ' ~ ' listbox1.items[i];
end;
caption:=caption '等' inttostr(cc) '人';
application.ProcessMessages; <------這行是什麼 ?
NMSMTP1.PostMessage.ToBlindCarbonCopy.Add(edit4.text);
NMSMTP1.PostMessage.Body.Clear;
for i:=0 to memo2.lines.count-1 do
NMSMTP1.PostMessage.body.Add( memo2.Lines[i]);
NMSMTP1.PostMessage.body.Add(DateTostr(now) '-' inttostr(no1) '-' inttostr(no2));
NMSMTP1.SendMail;
編輯記錄
joana 重新編輯於 2007-11-02 11:14:09, 註解 無‧
pcboy
版主


發表:177
回覆:1838
積分:1463
註冊:2004-01-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-11-02 11:07:29 IP:61.220.xxx.xxx 訂閱
Mail Server 是否來得及處理 => 這要看硬體多強, Mail Server 用哪套
------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案!

子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問!
joana
一般會員


發表:35
回覆:70
積分:21
註冊:2005-09-02

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-11-02 11:26:31 IP:122.124.xxx.xxx 訂閱
謝謝Pcyoy大德之回覆
我的發信主機是連上 msa.hinet.net,發信人帳號是用我outlook express 之帳號
msa.hinet.net 是否就是您說的 Mail SERVER

application.ProcessMessages; <------這行是什麼 ?

還有這支程式有一個 [失敗重試次數] 之功能, 但好像沒有什麼作用,要如做到 [失敗重試] ?
裡面有一個 頭E_MAIL 及 尾E_MAIL,這個是不是應該填入我的E-MAIL帳號,發現如果沒填資料,會發不出去
pcboy
版主


發表:177
回覆:1838
積分:1463
註冊:2004-01-13

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-11-02 11:44:33 IP:61.220.xxx.xxx 訂閱
以前有人問過了, 而且 Google 一下資訊很多
QT 對應 Application->ProcessMessages(); 的函數是什麼?
http://delphi.ktop.com.tw/board.php?cid=169&fid=999&tid=69005
Application.ProcessMessages--〉處理消息隊列,主要是為了釋放系統控制權,如果不使用這一步,如果你的處理很多,這個時候你可能根本沒辦法作任何操作,比如鼠標的移動,但是用了這個,後台就會自動分發處理消息,你仍然可以操作你的其他動作,你的程序也會繼續處理自己的任務。就是這樣的意思了。
http://topic.csdn.net/t/20060718/21/4889014.html
***********************************************************
msa.hinet.net 是否就是您說的 Mail SERVER ? 是
夾檔之檔案有1-2MB,且一次都要發上千封信 => 信件內容不同嗎 ?
如果內容相同, 最好改成 1 封信寄給千人, 這樣寄出不過 2MB
您有考慮過效能, 頻寬等問題嗎
如果是千封信件, 寄出有 1 GB - 2 GB
假設使用 8M/640K ADSL 線路, 上傳每秒 50 KBytes/s
2GB / 50K = 40000 秒 = 12 小時
信件傳輸過程有編碼, 體積會膨脹為 4/3
12 * 4/3 = 16 小時
------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案!

子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問!
joana
一般會員


發表:35
回覆:70
積分:21
註冊:2005-09-02

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-11-04 23:05:39 IP:122.124.xxx.xxx 訂閱
謝謝Pcyoy大德如此仔細的回覆,讓我這菜鳥又學到一些,感恩不盡!
系統時間:2024-05-19 21:20:47
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!