
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
ENDTRY
Este 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

