Page 1 of 1

Enviar Correo con CDO

Posted: Sat Jun 23, 2018 1:19 pm
by acuellar
Estimados

He intentado con éstos 2 códigos enviar y no envia con cuenta GMAIL y HOTMAIL

Code: Select all

#Include "FiveWin.ch"

Function Main()
    Local oEmailCfg,oEmailMsg,oLoc
   
    TRY
       oEmailCfg := CREATEOBJECT( "CDO.Configuration" )
      WITH OBJECT  oEmailCfg:Fields
         :Item( "http://schemas.microsoft.com/cdo/configuration/smtpserver" ):Value := "smtp.gmail.com"
         :Item( "http://schemas.microsoft.com/cdo/configuration/smtpserverport" ):Value := 465 // 25 // 465
         :Item( "http://schemas.microsoft.com/cdo/configuration/sendusing" ):Value:= 2   // Remote SMTP = 2, local = 1
         :Item( "http://schemas.microsoft.com/cdo/configuration/smtpauthenticate" ):Value := .T.
         :Item( "http://schemas.microsoft.com/cdo/configuration/smtpusessl" ):Value :=  .F.
         :Item( "http://schemas.microsoft.com/cdo/configuration/sendusername" ):Value :=  "adhemarcr@gmail.com"
         :Item( "http://schemas.microsoft.com/cdo/configuration/sendpassword" ):Value :=  "pass"
         :Item( "http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout"):Value := 30
         :Update()
      END WITH
    CATCH oError
      MsgInfo( "No puede crear la configuración" + ";"  + ;
             "Error: " + TRANSFORM(oError:GenCode, NIL) + ";" + ;
             "SubC: " + TRANSFORM(oError:SubCode, NIL) + ";" + ;
             "OSCode: " + TRANSFORM(oError:OsCode, NIL) + ";" + ;
             "SubSystem: " + TRANSFORM(oError:SubSystem, NIL) + ";" + ;
             "Message: " + oError:Description )
       Return .F.
    END
    oError:=NIL
    ExePath:=cFilePath(GetModuleFileName(GetInstance()))

    Adjunto:=""
    cCuerpo:="Texto del cuerpo"
    TRY
     oEmailMsg := CREATEOBJECT ( "CDO.Message" )
     WITH OBJECT oEmailMsg
        :Configuration =  oEmailCfg
        :From = chr(34)+" Adhemar "+chr(34)+ "adhemarcr@gmail.com" 
        :To = "acuellar@lostajiboshotel.com" 
        :Subject =  "Envio automatico"
        :ReplyTo =  " " 
        :Sender =  " "  
        :Organization =  "AcrSoft"   
        :AddAttachment(Adjunto)
        :HTMLBody =  cCuerpo 
        :Send()
     END WITH
     SysRefresh()
    CATCH oError
        
       MsgInfo( "Could not send message" + ";"  + CRLF+ ;
         "Error: " + TRANSFORM(oError:GenCode, NIL) + ";" + CRLF+;
         "SubC: " + TRANSFORM(oError:SubCode, NIL) + ";" + CRLF+ ;
         "OSCode: " + TRANSFORM(oError:OsCode, NIL) + ";" + CRLF +;
         "SubSystem: " + TRANSFORM(oError:SubSystem, NIL) + ";" +CRLF+ ;
         "Message: " + oError:Description )
       Return .F.
    
    END
    MsgInfo("Correo enviado")

Return
 

Code: Select all

#Include "FiveWin.ch"

function Main()

local oMsg := CreateObject( "CDO.Message" )
local oConf := CreateObject( "CDO.Configuration" )
local cSchema := "http://schemas.microsoft.com/cdo/configuration/"

oConf:Fields[ cSchema + "smtpusessl" ] = 1 //.T. 
oConf:Fields[ cSchema + "smtpauthenticate" ] = 1
oConf:Fields[ cSchema + "sendusername" ] = "adhemarcuellar@hotmail.com"//"adhemarcr@gmail.com" //
oConf:Fields[ cSchema + "sendpassword" ] = "pass"
oConf:Fields[ cSchema + "smtpserver" ] = "smtp-mail.outlook.com" //"smtp.gmail.com" //
oConf:Fields[ cSchema + "sendusing" ] = 2
oConf:Fields[ cSchema + "smtpserverport" ] = 465 //587 //465
        
oConf:Fields:Update()

oMsg:To = "acuellar@lostajiboshotel.com"
oMsg:From ="adhemarcuellar@hotmail.com" //"acuellar@gmail.com"  //
oMsg:Subject = "Prueba de correos con una cuenta gmail"
oMsg:HTMLBody = "aqui va el texto del mensaje"
oMsg:Sender = "adhemarcuellar"
oMsg:ReplyTo = "acrsoft@gmail.com"
oMsg:Configuration = oConf

oMsg:Send()
MsgInfo( "Correo enviado OK !!" )
Return 
 
Utilizo:
Harbour 3.2.0dev (r1801051438)
Embarcadero C++ 7.30
FWH1803

Gracias por la ayuda

Re: Enviar Correo con CDO

Posted: Sat Jun 23, 2018 5:07 pm
by Mike Serra
Buenas Tardes acuellar:

Prueba el primer codigo pero estableciendo ssl a true

Code: Select all

:Item( "http://schemas.microsoft.com/cdo/configuration/smtpusessl" ):Value :=  .T.
 
Si no me equivoco, además hay que configurar la cuenta gmail para que se pueda enviar con aplicaciones menos seguras. En el foro creo que hay una forma de hacerlo, si no escríbelo en google, que te lo indicará

Re: Enviar Correo con CDO

Posted: Mon Jun 25, 2018 3:22 pm
by acuellar
Muchas gracias Mike

Ya funciona.
Era problema de permiso para enviar de apps menos seguras.

Re: Enviar Correo con CDO

Posted: Mon Jun 25, 2018 3:38 pm
by karinha