2010-07-27 219 views
-1

我使用的ASP代碼和AspEmail組件發送電子郵件給我們clinets,但我有一些problmes ...尋找郵件解決方案

我有更多的則1000個的電子郵件地址,我需要向他們發送一封電子郵件由於我的SMTP提供商限制,我無法將它們全部作爲密件抄送添加到一封電子郵件中,但我需要分別發送每封電子郵件,因此需要永久循環+1000次,並引發服務器超時錯誤。

我需要每天發送20次這些電子郵件。

這是我的腳本:

on error resume next 

msg = "SOME TEXT HERE" 


Set Mail = Server.CreateObject("Persits.MailSender") 

Mail.Host = "SMPT.HOST.ADDRESS" 
Mail.Port = 25  

Mail.CharSet = "UTF-8" 
Mail.ContentTransferEncoding = "Quoted-Printable" 

Mail.From = "[email protected]" 

MailSubject = "email subject" 

Mail.Subject = Mail.EncodeHeader(MailSubject, "utf-8") 

Mail.Body = msg 

Mail.IsHTML = True 


zBcc = split(zBcc, ";") '1000 emails here 

for i=0 to Ubound(zBcc) 
    zBcc(i) = trim(zBcc(i)) 
    if len(zBcc(i))>0 then 
    if inStr(zBcc(i), " ")>0 then 

    else 
    if (Mail.ValidateAddress(zBcc(i)) = 0) then 

    Mail.Reset() 
    Mail.AddAddress zBcc(i) 
    Mail.Send 

    end if 

    end if 
    end if 
next 

set Mail=nothing 

回答

0

你爲什麼不這樣做使用分頁式的邏輯即 限額由100 環通的那批, 一旦完成, 它重新加載與該頁面下一個偏移記住像send-email.asp?offset = 100,send-email.asp?offset = 200等。 使用該偏移值獲取下一批 重複過程直到記錄集結束。

至少你有較少的它超時本書雖然可以增加它的機會:server.ScriptTimeout = 180所有的

0

首先我會最大限度地提高BCC的每個週期的數量。假設您可以一次發送50封密件抄送;你應該:特別是當你每天需要這個頁面20次左右。

無論如何。在你開始之前;最大化腳本超時時間

Server.ScriptTimeout = 2147483647 
相關問題