*- Envío de correo con CDO *- Probado el 03may2020 *-PRODIGY *-mServidor="smtp.prodigy.net.mx" *-mPort=587 *-mSSL=.F. *** *-GMAIL *-mServidor="smtp.gmail.com" *-mPort=465 *-mSSL=.T. *** *-OUTLOOK *-mServidor="smtp.office365.com" *-mPort=25 *-mSSL=.T. ***** *--- ajustar valores propios *************************************** mServidor="smtp.office365.com" mUsuario="abal-lu.programas@outlook.com" mClave="aquilacontraseña" mPort=25 mTo="nota17@prodigy.net.mx" mSSL=.t. mAdjunto="C:\orders.pdf" *************************************** *valida la cuenta de correo loRegExp = CreateObject("VBScript.RegExp") loRegExp.IgnoreCase = .T. loRegExp.Pattern = '^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)­*)\.([A-Za-z]{2,})$' m.valid = loRegExp.Test(mTo) RELEASE loRegExp IF m.valid=.F. MESSAGEBOX("Cuenta de correo no válida",48,"Verifique") Return ENDIF *verifica existencia de archivos IF !FILE(mAdjunto) MESSAGEBOX("No existe adjunto",48,"Verifique") ENDIF *confirma enviar correo IF MESSAGEBOX("Desea enviar correo?",36,"Confirme")=7 RETURN EndIf LOCAL loCfg, loMsg, lcFile, loErr TRY loCfg = CREATEOBJECT("CDO.Configuration") WITH loCfg.Fields .Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = mSSL&&465=.t.&&587=.f. .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = mServidor .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") =mPort&&465 && ó 587 .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 .Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1&&&&&&&&&&1 .Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = mUsuario .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = mClave .Update ENDWITH loMsg = CREATEOBJECT ("CDO.Message") WITH loMsg .Configuration = loCfg *-- Remitenete y destinatarios .From = '"YO"'+mUsuario&&respetar comillas .To = ALLTRIM(mTo) *.Cc = "Usuario Dos " *- Notificación de lectura *.Fields("urn:schemas:mailheader:disposition-notification-to") = .From *.Fields("urn:schemas:mailheader:return-receipt-to") = .From *.Fields.Update *-- Tema .Subject = "Pruebax con CDO/Outlook" *-- Formato HTML desde la Web .TextBody = "Se adjuntan archivos de prueba CDO/Outlook" *.CreateMHTMLBody("http://www.portalfox.com/articulos/archivos/correo.htm", 0) *-- Archivo adjunto *lcFile = GETFILE() .addAttachment(mAdjunto) *-- Envio el mensaje .Send() ENDWITH *resultado del envio loErr=0 CATCH TO loErr FINALLY If loErr != 0 MESSAGEBOX("No se pudo enviar el correo" + CHR(13) + ; "Error: " + TRANSFORM(loErr.ErrorNo) + CHR(13) + ; "Mensaje: " + loErr.Message , 16, "Error") ELSE MESSAGEbox("Correo enviado satisfactoriamente",0,"Aviso") endif loMsg = NULL loCfg = NULL ENDTRY