Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/09/2011, 09:08
gdasoft
 
Fecha de Ingreso: septiembre-2011
Mensajes: 116
Antigüedad: 13 años, 6 meses
Puntos: 8
Aplicación mailing

Buenas tardes,

He construido en ASP una aplicación web para realizar un servicio de mailing (envió de correo masivo) asociado a una base de datos SQL y todo esto montado en un servidor propio (windows server 2003 R2).

Utilizamos este servicio para hacer campañas, con el fin de poder mejorar la velocidad de ejecución, más abajo les hago copy & paste del código en el cual realizo el envió.

Quisiera saber si puedo mejorar mi código para que este se efectué más rápidamente.

Actualmente realizo un envió de 700 emails seguidos en un tiempo de 2 minutos y 30 segundos aproximadamente. Sería posible bajar ese tiempo.

Por otro lado en el momento que se está procesando el envió no se puede navegar a través de la página web, ya que esta se satura durante el tiempo en el que se estén enviado los correos.

Funcionamos con IIS v6.0. Existe alguna manera para no destinar todo el ancho de banda a la aplicación de mailing?

Gracias de antemano.

Código:
Correos = ""
Correos = rs("email") & ";"
while (Not rs.EOF)
Correos = Correos & rs("email") & ";"
rs.Movenext
wend
set mail=server.CreateObject("CDO.Message")
mail.From= "xxx" 
mail.To = "xxx"
mail.Bcc = Correos
mail.Subject = Asunto
mail.HtmlBody = VbCrLf & VbCrLf & VbCrLf & body 
mail.Configuration.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "xxx"
mail.Configuration.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
mail.Configuration.Fields("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = False
mail.Configuration.Fields("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
mail.Configuration.Fields("http://schemas.microsoft.com/cdo/configuration/sendusername") = "xxx"
mail.Configuration.Fields("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "xxx"
mail.Configuration.Fields.Update
mail.Send
set mail=nothing 
rs.Close
set rs=nothing
Tenemos una página principal en la que tenemos varias listas de destinatarios, cada una de ellas no tiene más de 700 emails. Los envios los hacemos individualmente, ya que si marco 3 o 4 grupos eso supone unos 2800 correos de golpe.

Luego con Request.Form recogemos el grupo de destinatarios a los que queremos mandar el email.

mediante el while recorremos el record set que apunta a mi base de datos y cargo todos los destinatarios en la variable Correos que luego paso por el parametro .Bcc.