Problemas con CDO

1,645 views
Skip to first unread message

Daniel Sánchez

unread,
Oct 26, 2013, 1:43:45 PM10/26/13
to Comunidad de Visual Foxpro en Español, Mundo Visual FoxPro
Hasta hace un tiempo no tenia problemas para el envio de correo con gmail, pero ahora tengo problemas y no puedo enviar me sale error 1429, ya he probado el cambio del puerto 465 y 587 pero no va, alguien más tiene problemas enviando correo con gmail, esta es  la configuración que estoy usando.

Try
Local LCSCHEMA, LOCONFIG, LOMSG, LOERROR, LCERR
LCERR = ""
LOCONFIG = Createobject("CDO.Configuration")
With LOCONFIG.Fields
.Item(LCSCHEMA+"smtpserver") = "smpt.gmail.com"
.Item(LCSCHEMA+"smtpserverport") = 465
.Item(LCSCHEMA+"sendusing") = 2
.Item(LCSCHEMA+"smtpauthenticate") = 1
.Item(LCSCHEMA+"smtpusessl") = 1
.Item(LCSCHEMA+"sendusername") = [resets...@gmail.com]
.Item(LCSCHEMA+"sendpassword") = [mipassword]
.Item(LCSCHEMA+"smtpconnectiontimeout") = 60
.Update
Endwith
LOMSG = Createobject("CDO.Message")
With LOMSG
.CONFIGURATION = LOCONFIG
.From = [Reset Software <resets...@gmail.com>]
.SUBJECT = "Prueba de envio con CDO "
.textbody =[veamos si envia]
*.HTMLBODY = chtml
.Send()
Endwith
Catch To LOERROR
LCERR = 'Error: '+Str(LOERROR.ErrorNo)+Chr(13)+'Linea: '+Str(LOERROR.Lineno)+Chr(13)+'Mensaje: '+LOERROR.Message
Finally
Release LOCONFIG, LOMSG
Store .Null. To LOCONFIG, LOMSG
If Empty(LCERR)
Messagebox("El mensaje se envió con éxito", 64, "Aviso")
Else
Messagebox(LCERR, 16, "Error")
Endif
Endtry

Como repito, este código anteriormente iba como bala, sin problemas, pero ahora no quiere enviar, que puede estar mal.

Saludos

--
Daniel Sánchez Escobar
Investigación y Desarrollo
Reset Software & Sistemas
Móvil +051-949398047
Trujillo - Perú

Fernando D. Bozzo

unread,
Oct 26, 2013, 6:55:25 PM10/26/13
to publice...@googlegroups.com, Mundo Visual FoxPro
Hola Daniel:

Hace un buen rato que estoy probando esto que comentás, y me parece que en Google deben haber cambiado algo hace muy poco, aunque no encuentro nada que lo explique, porque no funciona.

En el siguiente link, explica que si la conexión es por SSL (465) se debe completar un CAPTCHA:

Cómo enviar un correo desde una impresora, un escáner o una aplicación
https://support.google.com/a/answer/176600

Y que si no usás SSL (25) uses la dirección "aspmx.l.google.com", la cuál probé con tu ejemplo 8cambiando el puerto a 25) y me da otro error distinto:

---------------------------
Error
---------------------------
Error:       1429 Linea:        358 Mensaje: OLE IDispatch exception code 0 from ?: No se pudo enviar el mensaje al servidor SMTP. El código de error de transporte fue 0x800ccc69. La respuesta del servidor fue 550 5.7.1 http://support.google.com/mail/bin/answer.py?answer=10336 ex14si3502370wid.74 - gsmtp
..
---------------------------
Aceptar  
---------------------------

Que te deriva a otro link (http://support.google.com/mail/bin/answer.py?answer=10336) que dice "La dirección IP que utilizas para enviar correos electrónicos no está autorizada", donde te explica que no te dan solución porque no pueden poner a todo el mundo en su lista blanca... 


Lo siento :-(

HernanCano

unread,
Oct 27, 2013, 3:36:02 AM10/27/13
to publice...@googlegroups.com, Mundo Visual FoxPro

Buenos días, colegas.

Estoy teniendo problemas para enviar emails desde mis aplicaciones.
Sí tú también estás teniendo este mismo inconveniente, parece que Gmail ha desactivado el servicio.

¿Alguien más está pasando por lo mismo?

Gracias.

HERNAN CANO MARTINEZ
Analista de Sistemas - Programador

HernanCano

unread,
Oct 27, 2013, 3:37:34 AM10/27/13
to mundovis...@googlegroups.com, Comunidad de Visual Foxpro en Español

Daniel Sánchez

unread,
Oct 27, 2013, 7:55:36 AM10/27/13
to Comunidad de Visual Foxpro en Español
Y lo peor que parece que es con los correos que se manejan por gmail, tengo un cliente que tiene su dominio y todas sus cuentas de correo las maneja con gmail y hoy probando tampoco pude enviar, y eso es desde sus computadoras y no por mi laptop que uso, para descartar si es mi equipo el del problema, y obviamente desde su red y conexión de internet que ellos poseen, así que creo que no es el problema por el router o algún antivirus, ya que el resultado es el mismo que obtuve desde otras redes de diversos clientes.

Saludos

Edgar Acevedo

unread,
Oct 27, 2013, 12:11:43 PM10/27/13
to publice...@googlegroups.com
Daniel:

Me alarma mucho tu caso porque yo también tengo algunas aplicaciones que necesitan enviar correos desde el servidor de gmail.  Tres de esas aplicaciones utilizan sus propios dominios con cuentas de correo manejadas por gmail.

Acabo de hacer pruebas y TODAS, sin excepción están funcionando sin problema (aún las de dominios propietarios, pero de buzones vinculados a gmail).

Entonces acabo de crear una cuenta en gmail solo para efectos de prueba.  Te comparto los datos para que puedas hacer tus propias pruebas.  A mi me ha funcionado SIN PROBLEMAS.  Estos son los datos de la cuenta:

Buzón de la cuenta: tests...@gmail.com
Password:  forovfp9

El código que utilicé para enviar un mensaje de prueba fue el siguiente:

TRY

      M.MailTxt = '<p><FONT FACE="courier new"><FONT SIZE=2><b><br>' + ;
                  'Un simple mensaje de prueba para VFP9' +;
                  '</font></font></b></p>'

      oMailCnf = CREATEOBJECT("CDO.Configuration")
      WITH oMailCnf.Fields
         .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"
         .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465
         .Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = .T.
         .Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = .T.
         .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
         .Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "tests...@gmail.com"
         .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "forovfp9"
         .Update
      ENDWITH
      oMailMsg = CREATEOBJECT ("CDO.Message")
      WITH oMailMsg
         .Configuration = oMailCnf
         .To = 'aper...@hotmail.com'
         .From = '"Foro VFP9" tests...@gmail.com'
         .Subject = 'Prueba de envío desde gmail'
         .Fields("urn:schemas:httpmail:priority") = 1
         .Fields("urn:schemas:mailheader:X-Priority") = 1              
         .HTMLBody = M.MailTxt
         .Send()
      ENDWITH
   CATCH TO loErr
      MESSAGEBOX("No se pudo enviar el mensaje:" + CHR(13) + ;
                 "Error: " + TRANSFORM(loErr.ErrorNo) + CHR(13) + ;
                 "Mensaje: " + loErr.Message + CHR(13) + ;
                 "El servidor de salida rechazó esta dirección de correo electrónico.", 16, "Error de Envío.", 45000)
      M.ResSnd = .F.
   FINALLY
      M.ResSnd = .T.
ENDTRY

Si te parece, por favor solo "copia y pega" literalmente mi código de arriba y ejecútalo. Solamente cambia en el .To el nombre del buzón a donde deseas enviar la prueba (si no lo haces, la recibiré yo nuevamente, no hay problema, te aviso si lo recibo.). Si deseas una prueba mas imparcial, también podrías cambiar el contenido del mensaje en la variable M.MailTxt

Te sugiero esta prueba solamente para comprobar bajo exactamente las mismas condiciones si también así te falla el envío.  Te repito: a mi me funcionó perfecto (3 veces seguidas).

Saludos,



Edgar Acevedo.






Daniel Sánchez

unread,
Oct 27, 2013, 1:00:08 PM10/27/13
to Comunidad de Visual Foxpro en Español
Edgar tienes razón, tu código funciona perfectamente con tu cuenta que creaste y cambie los parámetros de cuenta por la mia con mi clave y envio perfecto, ahora debo deducir que algo de mi código esta mal, por lo tanto procedo a cambiarlo por el tuyo, veo como va y comento, mil gracias.

Saludos

HernanCano

unread,
Oct 27, 2013, 1:04:08 PM10/27/13
to publice...@googlegroups.com
Ok, Edgar.
Gracias por permitirnos hacer la prueba.

De momento lo que veo es que yo estoy utilizando el CDO2000.PRG que viene incorporado a FoxyPreviewer, y el CREATEOBJECT("CDO2000")., mientras que tú utilizas CREATEOBJECT("CDO.Configuration") y CREATEOBJECT ("CDO.Message") .

Continuaré verificando y les comento.

HernanCano

unread,
Oct 27, 2013, 1:07:10 PM10/27/13
to publice...@googlegroups.com
Realmente no parece haber inconsistencia, pues el CDO2000 sólo encapsula (los dos objetos) para tener un sólo objeto.
Veo q la sistaxis es correcta.

Sigo verificando.

Daniel Sánchez

unread,
Oct 27, 2013, 2:12:24 PM10/27/13
to Comunidad de Visual Foxpro en Español
Despues de darle mil vueltas a mi código comparando que pueda estar mal entre el código de Edgar Acevedo y el mio no veia nada malo y fui revisando linea por linea hasta que decidi cambiar estas lineas de mi codigo por las de Edgar

 donde esta variable la definí así


y mas abajo lo usaba en items así

.Item(LCSCHEMA+"smtpserver") = "smpt.gmail.com"
.Item(LCSCHEMA+"smtpserverport") = 465
.Item(LCSCHEMA+"sendusing") = 2
.Item(LCSCHEMA+"smtpauthenticate") = .t.
.Item(LCSCHEMA+"smtpusessl") = .t.
.Item(LCSCHEMA+"sendusername") = "resets...@gmail.com"
.Item(LCSCHEMA+"sendpassword") = "myclave"

y lo cambie por el metodo que es directo sin variable usada por Edgar

y Oh maravilla, albricias albricias, envio sin problema.

Saludos



El 27 de octubre de 2013 11:11, Edgar Acevedo <aper...@gmail.com> escribió:

Edgar Acevedo

unread,
Oct 27, 2013, 4:10:50 PM10/27/13
to publice...@googlegroups.com
Daniel:

Bueno, me alivia pensar que te sirvió.  Ya me había asustado con que la gente de Gmail estuviera "trasteando" este asunto.
Acabo de recibir un mensaje de prueba de Hernan Cano sin problemas:

Un simple mensaje de prueba para VFP9. Mensaje enviado por Hernan Cano para ensayar...

Mil gracias Hernan...!  Ahora propongo que esa cuenta se quede abierta para pruebas de este foro...

Saludos,


Edgar Acevedo.



Edgar Acevedo.

HernanCano

unread,
Oct 27, 2013, 5:18:06 PM10/27/13
to publice...@googlegroups.com
Hola, Edgar.

Esa prueba la hice con el código de prueba que tú pusiste.

Pero con mi sistema recibí resultados erráticos... y luego de hacer modificaciones y ajustes para detectar los valores de las vbles y de los errores internos que presentaba la clase CDO2000, las cosas se solucionan solas.

Como digo he recibido resultados erráticos: por momentos enviaba bien, y por momentos no.

Pero sí he de decir que mi app ha enviado bien... por momentos.
Lo que me hace suponer que o (1) la clave la escribo mal en algún momento (la escribo para no grabarla, pues nunca he podido usar la alternativa nativa de FoxyPreviewer), o (2) el servidor repudia mensajes aleatoriamente (como ya alguno mencionó).


Si mi app funciona bien por momentos, considero que mi escenario es correcto, y por lo tanto el de los colegas en los que es similar (Daniel, quien es el que pregunta) y de Edgar (que nos proporciona una metodología).

Después de varias pruebas, concluyo que los escenarios son correctos y este tema queda concluido para mí.

Hernan Cano

unread,
Oct 27, 2013, 5:19:20 PM10/27/13
to publice...@googlegroups.com
Perdonen que no borré la historia en la anterior respuesta.

Fernando D. Bozzo

unread,
Oct 27, 2013, 5:49:49 PM10/27/13
to publice...@googlegroups.com
Algo con GMAIL pasó, porque lo mismo que ayer no me funcionó ahora si me funciona, así que el problema no está en el ejemplo original, que incluso ahora mismo debe estar funcionando nuevamente.

Ricardo Pina

unread,
Oct 27, 2013, 5:59:25 PM10/27/13
to Grupo VFP
En la semana se cayeron los servidores de gmail en casi todo el mundo, talvez estos inconvenientes esten relacionados.
 
Saludos
 
--
            

                   Ricardo Pina

Desarrollo y Servicios Informáticos

                  Profesionales
               www.dsip.com.ar

 

 

Fernando D. Bozzo

unread,
Oct 27, 2013, 6:03:03 PM10/27/13
to publice...@googlegroups.com
Esto también demuestra una cosa: Qué vulnerables somos con la dependencias de este servicio, y cómo puede estropear en un santiamén la parte de correo de un sistema...

Diego Gonzalez

unread,
May 22, 2015, 11:08:35 AM5/22/15
to publice...@googlegroups.com, resets...@gmail.com, mundovis...@googlegroups.com
A mi me salia el mismo error y lo tuve que solucionar agregando un texto cualquiera en el cuerpo del mensaje. Estaba enviando un archivo adjunto pero no era necesario poner nada en el body porque no hacia falta. pero parece que google usa alguna politica de spam que no te permite enviar el correo sin un dato de aunque sea una letra en el cuerpo del mensaje. Solucionado!!!

         osMg.TextBody = "la p que los p....google....que tiempo que perdi en esto"

Fernando D. Bozzo

unread,
May 22, 2015, 11:13:36 AM5/22/15
to publice...@googlegroups.com

Hola Diego :

Los hilos como este, de hace 2 años, ya no se responden.
Es mejor ayuda responder a los que tienen problemas ahora, bo en el pasado.

Saludos,

El viajero del tiempo

Antonio Meza

unread,
May 22, 2015, 11:29:12 AM5/22/15
to publice...@googlegroups.com, fdb...@gmail.com
Maestro Fernando, lo que pasa es que Diego a penas lo resolvió intentando desde el 2013, en la ultima frase de su mensaje dice:

"que tiempo que perdi en esto"

Es viernes!! jaja

saludos!!

Fernando D. Bozzo

unread,
May 22, 2015, 11:31:56 AM5/22/15
to publice...@googlegroups.com

Jajajajaja, muy bueno Antonio :-)

Luis Salazar

unread,
May 22, 2015, 11:33:19 AM5/22/15
to publice...@googlegroups.com
El ejemplo de Edgar me funciono bien ..
Hay alguna forma te anexarle un documento al correo  o q lo pueda ejecutar para envio masivo
tomando  datos de una base de datos
????

Douglas Sánchez

unread,
May 22, 2015, 1:37:55 PM5/22/15
to publice...@googlegroups.com
Hola Daniel a mi me funciona de maravilla, revisa esto. pero lo tengo con dominio propio, con gmail algo me salia mal y decidi cambiarlo.


Try
loCfg = Createobject("CDO.Configuration")
With loCfg.Fields
.Update
Endwith
loMsg = Createobject ("CDO.Message")
With loMsg
.Configuration = loCfg
.From = vcorreosender
.To =   vcorreoTo
If !Empty(vCorreotocopia)
    .CC = vCorreotocopia
Endif
.Subject = "Correo"

cfile = Filetostr(Fullpath(Curdir())+'firmas\firma.html')
TEXT TO cfile2 TEXTMERGE noshow
</style>
<table width="200">
<table width="408" border="0" cellspacing="0" cellpadding="0">
<td colspan="3" bgcolor="#FFFFFF"><p><span class="style3"><strong> <<vUser>> </strong></span><br />
<span class="style6"> <<'vCargo>> </span><br />
<span class="style6">---------------------------</span><tr>
</p>
ENDTEXT
cbody = varcuerpo + '</p>' + '</p>' +'</p>'+ cfile2 + '</p>' + '</p>' + cfile
lctmpfile = Forceext(Addbs(Sys(2023))+Sys(2015),"html")
=Strtofile(cbody,lctmpfile)
.CreateMHTMLBody(lctmpfile)
lcFile = "c:\temp\"+vRepName
lcFile2 = "c:\temp\"+vRepName2
If !Empty(lcFile)    &&&&&&& rchivo 1
.AddAttachment(lcFile)
ENDIF
If !Empty(lcFile2)    &&&&&&archivo 2
.AddAttachment(lcFile2)
Endif
.Send()
ENDWITH
Catch To lcErr
=Messagebox("No se pudo enviar el Correo" + Chr(13) + ;
"Error: " + Transform(loErr.ErrorNo) + Chr(13) + ;
"Mensaje: " + loErr.Message , 16, "Error")
cfile2 = 'Error_PDF_'+Alltrim(Str(Day(p4fecha2))) +'_'+Alltrim(Str(Month(p4fecha2))) +'_'+Alltrim(Str(Year(p4fecha2)))+'.txt'
Terror2  = "Error al enviar el correo con el archivo adj... PDF, Fecha y Hora: " +Ttoc(Datetime())
=Strtofile(Terror2,cfile2,.T.)
FINALLY
* If Empty(lcErr)
=Messagebox('Ok, correo ha sido enviado...',0+64+4096,'Información',800)
* Endif
loMsg = Null
loCfg = Null
ENDTRY


Saludes

DSanchez

Hernan Cano

unread,
May 22, 2015, 9:09:53 PM5/22/15
to publice...@googlegroups.com
Marcado como Finalizado !!!!!!!!!!!!!!!

Elides Paredes

unread,
May 22, 2015, 9:46:57 PM5/22/15
to publice...@googlegroups.com, resets...@gmail.com, mundovis...@googlegroups.com
Estimados amigos. 

Supongo que había problemas con el Gmail. Yo no hice cambios y me funcionó, pero tardó mucho mas de lo normal.

Espero que sea eso. Hubo una falla y la corrigieron. Gracias de todas maneras por el aporte

Saludos

Elides Paredes. 
Reply all
Reply to author
Forward
0 new messages