Foros del Web » Programando para Internet » ASP Clásico »

Cdonts

Estas en el tema de Cdonts en el foro de ASP Clásico en Foros del Web. Tengo dos listados de direcciones de correos en una bd uno tiene 10 direcciones (criterio = 1) y el otro tiene 200 direcciones (criterio = ...
  #1 (permalink)  
Antiguo 01/10/2007, 14:21
Avatar de pcarvajal  
Fecha de Ingreso: enero-2002
Mensajes: 701
Antigüedad: 23 años, 3 meses
Puntos: 8
Cdonts

Tengo dos listados de direcciones de correos en una bd
uno tiene 10 direcciones (criterio = 1) y el otro tiene 200 direcciones (criterio = 2)

Construí una pagina que a medida que lee el recordset de direcciones de correo, manda el mail.
Algo asi:

Cita:
HTML="<html><body>esto es una prueba</body></html>"

Sql="SELECT email FROM mitabla (nolock) where criterio = 1"
Set Rs = con.Execute (Sql)
if not Rs.EOF then
while not RS.EOF
Call SendMail(Rs("email"),HTML)
Rs.Movenext
wend
end if
Set Rs = nothing

Function SendMail(vEmail,vHTML)
Set objMail = Server.CreateObject("CDO.Message")
Set objConf = Server.CreateObject("CDO.Configuration")
Set objFields = objConf.Fields

With objFields
.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "127.0.0.1"
.Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 10
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
.Update
End With

With objMail
Set .Configuration = objConf
.From = "[email protected]"
.To = vEmail
.Subject = "mi subject"
.HTMLBody = vHTML
End With

Err.Clear
on error resume next

objMail.Send
if not (len(Err.Description) = 0) then
response.Write Err.Description + "<br>"
else
response.Write "ok!" + "<br>"
end if
Set objFields = Nothing
Set objConf = Nothing
Set objMail = Nothing
end function

El problema está en que mandé los 10 del primer listado y todos llegaron.
Y cuando mandé los 200 de una sola patada, a pesar de que todos fueron enviados (o al menos eso me decia el codigo) ninguno de los usuarios lo recibió.

Cual seria la mejor forma de asegurarme de que todos recibioran el correo?
Pausando el envío cada 10 o 20 cristianos?
Se puede hacer eso?

o mando uno y pauso, mando uno y pauso?

Que sugieren?
  #2 (permalink)  
Antiguo 01/10/2007, 14:50
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 19 años, 3 meses
Puntos: 7
Re: Cdonts

El primer problema que te vas a encontrar siempre con los mailing o correos masivos es la política anti-spam de muchos servidores de correo. Cuando pasan de una determinada cantidad de destinatarios, el servidor bloquea el envio. Como ves no es un problema de programación sino de administración de sistemas.

De todas formas, yo te recomedaria un par de cosas:

- No uses scripts para lanzar tantos emails. Usa algún servicio que te proporcione tu servidor tal como cron o al programador de tareas.

- Envia los emails en grupos no mayores de 40 o 50 (chequea cual es el maximo permitido por el servidor de correo que uses).



Un saludo
__________________
"Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié -
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:46.