Gmail permite el envío de correo electrónico utilizando: el servidor smpt.gmail.com, autentificación, cifrado, puerto 465 ó 587, dirección de correo electrónico, nombre de usuario (incluido @gmail.com) y contraseña. (Para mas información de configuración haga clic aquí).
Craig Boyd publicó hace un tiempo en su Blog, varios artículos sobre distintas técnicas para el envio de mails desde VFP. Una de esas técnicas es mediante CDO (Collaboration Data Objects) que nos permite autenficación y cifrado SSL. Tomando como base su artículo "Email and VFP: Part 1c (CDOSYS)", solo se debe cambiar el puerto SMTP a 465 ó 587, y poner a .T. las propiedadades smtpauthenticate y smtpusessl.
El siguiente es el código modificado que nos permite el envió de correo electrónico a través del servidor SMTP de Gmail.
TRY LOCAL lcSchema, loConfig, loMsg, loError, lcErr lcErr = "" lcSchema = "http://schemas.microsoft.com/cdo/configuration/" loConfig = CREATEOBJECT("CDO.Configuration") WITH loConfig.FIELDS .ITEM(lcSchema + "smtpserver") = "smtp.gmail.com" .ITEM(lcSchema + "smtpserverport") = 465 && ó 587 .ITEM(lcSchema + "sendusing") = 2 .ITEM(lcSchema + "smtpauthenticate") = .T. .ITEM(lcSchema + "smtpusessl") = .T. .ITEM(lcSchema + "sendusername") = "usuario@gmail.com" .ITEM(lcSchema + "sendpassword") = "contraseña" .UPDATE ENDWITH loMsg = CREATEOBJECT ("CDO.Message") WITH loMsg .Configuration = loConfig .FROM = "usuario@gmail.com" .TO = "usuario@hotmail.com" .Subject = "Prueba desde Gmail" .TextBody = "Este es un mensaje de prueba con CDO con " + ; "autenticación y cifrado SSL desde Gmail" .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 ENDTRYEste código funciona también para las cuentas de correo electrónico brindadas por Google Apps.
[07/04/2015] ACTUALIZACIÓN:
Quizás no puedas enviar correos electrónicos con el código de este artículo dado que Gmail (Google) puede bloquear intentos de inicio de sesión de aplicaciones que no utilicen los últimos estándares de seguridad. Para solucionar este inconveniente, se debe habilitar en nuestra cuenta de Google el acceso a aplicaciones menos seguras. Esto lo haces desde el enlace: https://www.google.com/settings/security/lesssecureapps
Hasta la próxima,
Luis María
Gracias Luis, estaba bien preocupado buscando por que el envio de correo me habia dejado de funcionar y daba un error y fue que Gmail realizo cambios, yo buscaba informacion en PoltalFox pero ya no esta, gracia por esta actualizacion de informacion
ResponderBorrarexcelente aporte, pero tengo un problema como hago por medio de codigo activar en gmail el acceso para las aplicaciones menos seguras, ya que envie a cuentas de gmail y no reciben mis correos desde foxpro
ResponderBorrarhola como instalo la libreria cdo ??
ResponderBorrarGracias por el aporte, hay alguna forma de cuando se envía un correo, se quede en bandeja de enviados.?
ResponderBorrarMuchas gracias por el gran aporte me servicio muchisimo, solo hay que ir a configuración de Gmail para que te permita entrar.
ResponderBorrarBuenas noches, primero agradecer por tan buenos aportes que aun hoy siguen vigentes a pesar del tiempo transcurrido, yo uso el CDO para el envio de email desde Gmail, pero se me ha presentado un problema al usar este mismo codigo con una cuenta que no es de Hotmail, yahoo, ni gmail. La empresa tiene un dominio y hosting.
ResponderBorrarel servidor es "smtp.hostinger.es"
el puerto que usa es 587
1429# send # 185 # 0x00000213 Error de transporte en la conexion al servidor
es el error que muestra
Alguna sugerencia o solución.
Hola, buenas tardes...
ResponderBorrarEste hilo tiene algún tiempo ya, pero siempre he tomado a Luis María como un un referente muy respetable y es muy probable que el o alguien que lea esto pueda ayudarme... Utilizo el envío de correo CDO desde hace tiempo y me funciona sin inconvenientes, no es el funcionamiento en si lo que me preocupa sino que se me da un caso en algunos equipos en donde con exactamente la misma configuración de correo, arroja el famoso error 1429 de error de transporte. No tiene relación con la configuración de puerto, ni de conexión segura, ni nada por el estilo porque con exactamente la misma configuración me funciona sin inconvenientes en todos los equipos menos en un par... ¿Alguna idea? ¿A alguien le pasó algo similar?
El equipo que no envía tiene Windows Seven y utilizo servidores con dominios propios de Dattatec, puerto 465, identificandolo como conexión segura y habilitando SSL.
Gracias!!
Gustavo
(Neuquén)
Sigo teniendo el mismo inconveniente y al parecer algunos servidores no permiten el envio de mails desde aplicaciones de terceros, por mas lo hayas habilitado en la configuración correspondiente: Ej: >>>
ResponderBorrarhttps://www.google.com/settings/security/lesssecureapps.
Mas bien por el camino que toman los paquetes que viajan al servidor. Por Ej: aca en Paraguay utilizando el servicio de claro internet lo envía sin problemas, no así con otras compañías. A las cuales he descrito el error pero no me dan una solución.
Probar en el cmd del windows el comando c:\tracert 142.250.141.109
Lo anterior es el ip del servidor smtp de gmail. El tracert muestra los saltos que va dando el paquete en los diferentes servidores hasta su entrega. Si tienes una demora larga antes de llegar a destino ahi tienes el problema. Las compañias a las que reclame no se hacen cargo, en tal caso uno debe realizarlo por cuenta propia o cambiar de proveedor a uno que si funciones a este efecto.
En este sitio podrian identificar los ips: >>> https://www.iplocation.net/ip-lookup
Hasta que no exista solución a esto tratar de realizar los envíos desde las compañías con servicios de internet que si resultaron sin problemas.
Saludos!
Acá por Ej. tenemos un problema con este servidor 72.14.239.158 en el salto 13 utilizando la compañia TIGO
ResponderBorrarC:\>TRACERT 74.125.142.109
Traza a la dirección ie-in-f109.1e100.net [74.125.142.109]
sobre un máximo de 30 saltos:
1 1 ms 1 ms 1 ms 192.168.0.1
2 * * * Tiempo de espera agotado para esta solicitud.
3 17 ms 17 ms 17 ms 10.240.10.101
4 18 ms 16 ms 18 ms 181.40.40.17
5 16 ms 47 ms 14 ms 181.40.42.29
6 40 ms 42 ms 42 ms ae-101-edge.GRU.VIE.telecel.net.py [190.2.192.5]
7 48 ms 50 ms 43 ms 72.14.214.62
8 42 ms 53 ms 41 ms 108.170.245.161
9 39 ms 60 ms 47 ms 108.170.245.173
10 * 68 ms 52 ms 216.239.54.143
11 149 ms 148 ms 147 ms 66.249.94.109
12 * 176 ms 175 ms 142.250.58.62
13 185 ms 189 ms * 72.14.239.158
14 * * * Tiempo de espera agotado para esta solicitud.
15 211 ms 213 ms 215 ms 209.85.250.172
16 219 ms 211 ms 217 ms 74.125.251.249
17 * * * Tiempo de espera agotado para esta solicitud.
18 * * * Tiempo de espera agotado para esta solicitud.
19 * * * Tiempo de espera agotado para esta solicitud.
20 * * * Tiempo de espera agotado para esta solicitud.
21 * * * Tiempo de espera agotado para esta solicitud.
22 * * * Tiempo de espera agotado para esta solicitud.
23 * * * Tiempo de espera agotado para esta solicitud.
24 * * * Tiempo de espera agotado para esta solicitud.
25 * * * Tiempo de espera agotado para esta solicitud.
26 215 ms 233 ms 208 ms ie-in-f109.1e100.net [74.125.142.109]
Traza completa.
Con la compañía CLARO no tengo este problema.
ResponderBorrarC:\Users\Genarus>tracert 142.250.141.109
Traza a 142.250.141.109 sobre caminos de 30 saltos como máximo.
1 1 ms 1 ms 1 ms 192.168.100.1
2 4 ms 4 ms 5 ms host2.181-238-224.claro.com.py.224.238.181.in-addr.arpa [181.238.224.2]
3 40 ms 41 ms 42 ms 10.2.185.173
4 31 ms 30 ms 30 ms 10.2.6.26
5 31 ms 31 ms 31 ms 10.2.3.182
6 31 ms 30 ms 31 ms 10.2.186.117
7 41 ms 46 ms 47 ms host176.170-51-254.telmex.net.ar [170.51.254.176]
8 40 ms 39 ms 39 ms 142.250.47.162
9 42 ms 41 ms 41 ms 74.125.242.209
10 43 ms 40 ms 39 ms 74.125.242.216
11 43 ms 41 ms 41 ms 142.250.232.143
12 51 ms 52 ms 51 ms 142.250.228.3
13 159 ms 157 ms 157 ms 142.250.228.98
14 163 ms 163 ms 163 ms 142.250.238.74
15 162 ms 161 ms 161 ms 216.239.57.138
16 171 ms 170 ms 170 ms 142.250.212.193
17 * * * Tiempo de espera agotado para esta solicitud.
18 * * * Tiempo de espera agotado para esta solicitud.
19 * * * Tiempo de espera agotado para esta solicitud.
20 * * * Tiempo de espera agotado para esta solicitud.
21 * * * Tiempo de espera agotado para esta solicitud.
22 * * * Tiempo de espera agotado para esta solicitud.
23 * * * Tiempo de espera agotado para esta solicitud.
24 * * * Tiempo de espera agotado para esta solicitud.
25 * * * Tiempo de espera agotado para esta solicitud.
26 * * * Tiempo de espera agotado para esta solicitud.
27 * * * Tiempo de espera agotado para esta solicitud.
28 161 ms 161 ms 161 ms 142.250.141.109
Traza completa.
Ahora que google quito la opción de apps menos seguras no se pueden enviar correos, que solución se podrá tener
ResponderBorrarHola buenas tardes, encontre un video que dice paso a paso la forma de hacer eso de apps seguras:
Borrarhttps://youtu.be/MjwBufMWpRQ
Lo único que cambia una vez que se haya configurado la cuenta de gmail, es la contraseña que te genera el mismo gmail.
Estoy en la misma situación de que ahora que google quito la opción de apps menos seguras que se puede hacer ? Alguien que nos pueda apoyar.
ResponderBorrarhttps://youtu.be/MjwBufMWpRQ
BorrarEncontre este link, para configurar tu cuenta de gmail paso a paso, para que genere una contraseña para la app que usaremos en nuestro codigo.
ya la probe, ya pude enviar emails desde mi aplicación.