寻找邮件解决方案

时间:2010-07-27 08:40:15

标签: email asp-classic

我正在使用ASP代码和AspEmail组件向我们的clinets发送电子邮件,但我有一些问题......

我有超过1000个电子邮件地址,我需要向他们发送电子邮件,因为我的SMTP提供商限制,我不能将它们全部作为BCC添加到一封电子邮件中但我需要单独发送每封电子邮件,因此循环播放+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 =  "noreply@mydomain.co.il"

 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

2 个答案:

答案 0 :(得分:0)

为什么不使用分页类型逻辑,即 限制100, 循环通过该批次, 一旦完成, 重新加载页面时考虑下一个偏移量,如send-email.asp?offset = 100,send-email.asp?offset = 200等。 使用该偏移值来获得下一批 重复过程直到记录集结束。

至少你可以减少超时的机会,但是你可以增加它:server.ScriptTimeout = 180

答案 1 :(得分:0)

首先,我要最大化每个周期的BCC数量。假设您可以一次发送50个BCC的电子邮件;你应该:特别是当你每天需要这个页面大约20次时。

反正。在你开始之前;最大化scripttimeout

Server.ScriptTimeout = 2147483647