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:
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.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
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.