2010-07-27 132 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