Porqué falla el Mail con CDO?

15/07/2010 - 03:16 por Gustavo Gutierrez | Informe spam
Buenas Tardes:
Pues eso, que estoy desarrollando una aplicación que va a enviar una
gran cantidad de correos tomando de una tabla de access las
direcciones de destino y de otra tabla los datos de las cuentas de
salida. Para esto tengo una función, EnvioMasivo que hace la selección
de los destinatarios y le pasa los datos uno a uno a otra función,
EnvioIndividual, la cual selecciona de una tabla los datos de la
primera cuenta de origen disponible, y con CDO le pasa los datos:
Dim loCfg As CDO.Configuration
Dim loMsg As CDO.Message
Set loMsg = New CDO.Message
Set loCfg = New CDO.Configuration
Const sch = "http://schemas.microsoft.com/cdo/co...ion/"
strRemite = rsX.Collect("Clave")
strServer = rsX.Collect("Servidor")
strNombreorigen = rsX.Collect("Nombre")
strMailorigen = rsX.Collect("Correo")
intPuerto = rsX.Collect("Puerto")
bolSsl = rsX.Collect("Ssl")
bolAut = rsX.Collect("Autentificacion")
strPass = Crypto(rsX.Collect("Password"))
If bolSsl = True Then
intSsl = 1
Else
intSsl = 0
End If
If bolAut = True Then
intAut = 1
Else
intAut = 0
End If
With loCfg.Fields
.Item(sch & "smtpserver") = strServer
.Item(sch & "smtpserverport") = intPuerto
.Item(sch & "sendusing") = 2
.Item(sch & "sendusername") = strMailorigen
.Item(sch & "sendpassword") = strPass
.Item(sch & "smtpusessl") = intSsl
.Item(sch & "smtpconnectiontimeout") = 0
.Item(sch & "smtpauthenticate") = intAut
End With
loCfg.Fields.Update
strDe = strNombreorigen & " < " & strMailorigen & " > "
strPara = stName & " < " & stMail & " > "
With loMsg
.Configuration = loCfg
.From = strDe
.To = stMail
.Subject = TxtAsunto.Text
'aqui pongo la configuración de un HTML, no viene al caso...
.Fields.Update
.send
End With
Y es el caso que a veces envía varios correos y de repente me regresa
mensaje de "Not Available", o "Se perdió la conexión con el servidor"
o "Error de Transporte en la conexión al servidor". En todos estos
casos yo puedo abrir el cliente web de las cuentas de origen (Gmail,
Yahoo y Prodigy) y enviar correos sin problemas desde cada una de las
cuentas, de modo que el problema está en mi aplicación, no en el
servidor SMTP. En el caso de yahoo me regresa mensaje de que se
sobrepasó la capacidad de envío diario de la cuenta, aunque solo lleve
unos cuantos en el día. ¿Alguien sabe que puede estar pasando? Les voy
a agradecer muchísimo cualquier orientación que me puedan dar.

Gracias de antemano!
 

Leer las respuestas

#1 aa
15/07/2010 - 21:40 | Informe spam
Es porque yahoo y gmail se dan cuenta que estas haciendo spam.
Solo podes mandar 100 por dia por yahoo y gmail.
"Gustavo Gutierrez" wrote in message
news:
Buenas Tardes:
Pues eso, que estoy desarrollando una aplicación que va a enviar una
gran cantidad de correos tomando de una tabla de access las
direcciones de destino y de otra tabla los datos de las cuentas de
salida. Para esto tengo una función, EnvioMasivo que hace la selección
de los destinatarios y le pasa los datos uno a uno a otra función,
EnvioIndividual, la cual selecciona de una tabla los datos de la
primera cuenta de origen disponible, y con CDO le pasa los datos:
Dim loCfg As CDO.Configuration
Dim loMsg As CDO.Message
Set loMsg = New CDO.Message
Set loCfg = New CDO.Configuration
Const sch = "http://schemas.microsoft.com/cdo/co...ion/"
strRemite = rsX.Collect("Clave")
strServer = rsX.Collect("Servidor")
strNombreorigen = rsX.Collect("Nombre")
strMailorigen = rsX.Collect("Correo")
intPuerto = rsX.Collect("Puerto")
bolSsl = rsX.Collect("Ssl")
bolAut = rsX.Collect("Autentificacion")
strPass = Crypto(rsX.Collect("Password"))
If bolSsl = True Then
intSsl = 1
Else
intSsl = 0
End If
If bolAut = True Then
intAut = 1
Else
intAut = 0
End If
With loCfg.Fields
.Item(sch & "smtpserver") = strServer
.Item(sch & "smtpserverport") = intPuerto
.Item(sch & "sendusing") = 2
.Item(sch & "sendusername") = strMailorigen
.Item(sch & "sendpassword") = strPass
.Item(sch & "smtpusessl") = intSsl
.Item(sch & "smtpconnectiontimeout") = 0
.Item(sch & "smtpauthenticate") = intAut
End With
loCfg.Fields.Update
strDe = strNombreorigen & " < " & strMailorigen & " > "
strPara = stName & " < " & stMail & " > "
With loMsg
.Configuration = loCfg
.From = strDe
.To = stMail
.Subject = TxtAsunto.Text
'aqui pongo la configuración de un HTML, no viene al caso...
.Fields.Update
.send
End With
Y es el caso que a veces envía varios correos y de repente me regresa
mensaje de "Not Available", o "Se perdió la conexión con el servidor"
o "Error de Transporte en la conexión al servidor". En todos estos
casos yo puedo abrir el cliente web de las cuentas de origen (Gmail,
Yahoo y Prodigy) y enviar correos sin problemas desde cada una de las
cuentas, de modo que el problema está en mi aplicación, no en el
servidor SMTP. En el caso de yahoo me regresa mensaje de que se
sobrepasó la capacidad de envío diario de la cuenta, aunque solo lleve
unos cuantos en el día. ¿Alguien sabe que puede estar pasando? Les voy
a agradecer muchísimo cualquier orientación que me puedan dar.

Gracias de antemano!

Preguntas similares