Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/08/2003, 03:11
Avatar de AlexNV
AlexNV
 
Fecha de Ingreso: junio-2003
Ubicación: Madrid
Mensajes: 289
Antigüedad: 21 años, 10 meses
Puntos: 1
Error al encolar más de 30 emails.

Hola,

Tengo un boletín que necesito enviar a unos 4000 usuarios.
Para ello, he optado por usar el componente ASPMailer de Scibit, ya que CDO lo tuve que descartar hace tiempo porque de la noche a la mañana me dejó de funcionar y no hubo manera de arreglarlo.
Con ASPMailer no tengo problema para enviar emails normales(confirmaciones de registro, formularios a mi email, etc...) pero ahora cuando he tenido que enviar 4000 me da un problema.

Hago un select de la tabla usuarios, y la recorro, de tal forma que para cada uno creo un objeto Scibit.Aspmailer, le pongo los parámetros, el texto, lo envío y lo seteo a nothing.

Envía los 30 primeros, y a partir de ahí me da Error 6. Protocol Error.
Acto seguido, lo vuelvo a ejecutar (cogiendo en el select todos menos los 30 ya enviados) y me vuelve a hacer lo mismo. Envía 30 y el resto fallan. Por supuesto no puedo hacer esto cada mes hasta completar los 4000.

ASPMailer utiliza SMTP para envio de emails.
Me temo que es un problema con SMTP. De alguna manera, hasta que no hayan salido los 30, no deja crear nuevos.

No puedo usar ningún mail bomber porque los mensajes están personalizados, es decir, son 4000 emails diferentes, no un email a 4000 direcciones.

Aquí os pongo el código que utilizo.

Código:
<%
Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open ("Provider=SQLOLEDB.1;Password=xx;Persist Security Info=True;User ID=xx;Initial Catalog=xx;Data Source=XX3")

sSQL= "select u.nick, u.email, u.pw from usuarios u where u.boletin = 1 order by u.nick"

Set oRS = oConn.Execute(sSQL)

contOk=0
contFailed = 0
do while not oRS.EOF
	Set Mailer = Server.CreateObject("SciBit.ASPMailer")

	Mailer.From = """miweb.com""" & " <[email protected]>"
	Mailer.SMTPHost = "x.x.x.x"     'Aquí realmente hay una dirección ip válida
	Mailer.PortNumber=25  
	Mailer.Subject = "Boletín Agosto MiWeb.com"
	Mailer.SubType = 2
	Mailer.Recipients = oRS("email")

      	Text = TextodelMensajePersonalizado    'El usuario y su email van dentro del texto.
	Mailer.bodytextadd Text
	Mailer.Send 
	
        Set MailErr = Mailer.Errors
	if MailErr.Count = 0 then
		contOk=contOk + 1
		response.write ("Enviado email a " & oRS("nick") & " <" & oRS("email") & "><br>" & vbcrlf)
	else
		contFailed = contFailed + 1
	    	for counter = 0 to MailErr.Count - 1
    			Response.Write "----------Error Text: " & MailErr.Text(counter) & " - "
			Response.Write "Error Number: " & MailErr.Number(counter) & " <BR>"
	    	next
	end if
	oRS.MoveNext
	Set MailErr = Nothing
	Set Mailer = Nothing
loop
response.write "<br><Br>Enviados " & contOk & " emails<br>"
response.write "<br><Br>Fallidos " & contFailed & " emails<br>"


oRS.Close
oConn.Close 
set oconn=nothing
set ors=nothing

%>

Agradecería una ayuda, puesto que necesito enviar este boletín cuanto antes (debería haberlo enviado el día 1).

Muchas gracias.

Última edición por AlexNV; 06/08/2003 a las 03:17