Page 1 of 2

Enviar Correos CDO con fwh2307

PostPosted: Mon Aug 21, 2023 5:30 pm
by EASYSOFT
Estimados buenas tardes.

Al actualizarme a la versión fwh2307 ya no se puede enviar los correos utilizando CDO
TRY
oMsg := CREATEOBJECT ( "CDO.Message" )
WITH OBJECT oMsg
:Configuration = oCfg
:From = cFrom
:To = cTo
:CC = cCC
:BCC = cBCC
:Subject = cSubject
:TextBody = cMsg
For x := 1 To Len( aAttach )
if aAttach[x] <> NIL
:AddAttachment(AllTrim(aAttach[x]))
endif
Next
:Send()
END WITH
lRet := .t.
CATCH
MsgInfo("No fue posible enviar el correo")
lRet := .f.
END

Es parte del codigo , si trato con la versión que tenia anteriormente si funciona.

Quiza me puedan ayudar

Saludos

Re: Enviar Correos CDO con fwh2307

PostPosted: Mon Aug 21, 2023 6:36 pm
by karinha
Intente asi:

Code: Select all  Expand view

   oMsg:AddAttachment( AllTrim( aAttach[x] ) )
 


Regards, saludos.

Re: Enviar Correos CDO con fwh2307

PostPosted: Mon Aug 21, 2023 7:20 pm
by EASYSOFT
Karinha muchas gracias

Sigue igual no se envía el correo, quiza otra alternativa

Saludos

Re: Enviar Correos CDO con fwh2307

PostPosted: Mon Aug 21, 2023 7:25 pm
by karinha
POST completo para pruebas.

Prueba con ACBRMAIL.DLL

https://mega.nz/file/ZY0lCC4b#J087eB2aPhfZiNynwgaEnkwvrPF2P6y7Pifxl_41Qco

Salu2

Re: Enviar Correos CDO con fwh2307

PostPosted: Mon Aug 21, 2023 7:38 pm
by cmsoft
Cual es el error que te da?
Que contiene a aAttach[x]? Solo el nombre del archivo o el path completo?
Code: Select all  Expand view

TRY
   oMsg := CREATEOBJECT ( "CDO.Message" )
   WITH OBJECT oMsg
       :Configuration = oCfg
       :From = cFrom
       :To = cTo
       :CC = cCC
       :BCC = cBCC
       :Subject = cSubject
       :TextBody = cMsg
       For x := 1 To Len( aAttach )
          if aAttach[x] <> NIL
             :AddAttachment(AllTrim(aAttach[x]))
             // Si solo guardas el nombre y no el path completo del archivo puedes usar
             // :AddAttachment(TrueName( AllTrim(aAttach[x] ) ) )
          endif
       Next
       :Send()
   END WITH
   lRet := .t.
   CATCH oError
       MsgInfo("No fue posible enviar el correo"+CRLF+oError:Description,"Atencion") // Capura aqui el error que te da al enviar
       lRet := .f.
END
 

Re: Enviar Correos CDO con fwh2307

PostPosted: Mon Aug 21, 2023 7:59 pm
by karinha
Muestre esto:

Code: Select all  Expand view

  STATIC cAttach := ""
  STATIC aAttach := {}
 


¿Cómo estás "atrapando" los archivos adjuntos?

salud2

Re: Enviar Correos CDO con fwh2307

PostPosted: Mon Aug 21, 2023 8:13 pm
by Jimmy
hi,

how does you oCfg look like :?:
Code: Select all  Expand view
Configuration = oCfg

Re: Enviar Correos CDO con fwh2307

PostPosted: Mon Aug 21, 2023 8:23 pm
by karinha
Jimmy,

Code: Select all  Expand view

FUNCTION SendEmailLog( cErrorLog )

   LOCAL cEmailResp

   PUBLIC cEMailCli  // EMAIL PARA RESPOSTA DO CLIENTE

   cEmailResp := LOWER( cEMailCli )

   TRY
      oCfg := CREATEOBJECT( "CDO.Configuration" )

       WITH OBJECT oCfg:Fields

          :Item( "http://schemas.microsoft.com/cdo/configuration/smtpserver"       ):Value := "smtp.pleno.com.br"
          :Item( "http://schemas.microsoft.com/cdo/configuration/smtpserverport"   ):Value := 587
          :Item( "http://schemas.microsoft.com/cdo/configuration/sendusing"        ):Value := 2
          :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 := "joao@pleno.com.br" //<seu_email>
          :Item( "http://schemas.microsoft.com/cdo/configuration/sendpassword"     ):Value := "password" // <sua_senha>
          :Item( "http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout")   :Value = 30
          :Update()

       END WITH

   CATCH oError

      MsgInfo( "Não Foi possível Enviar o e-Mail!"                    +CRLF+ ;
               "Configure o Enviador de Email da Sua Empresa."        +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+ ;
               "Mensaje: "   + oError:Description, "CDO.Configuração" )
   
   END

   //aAttach := SetErrorPath() + SetErrorFileName()
   IF lErroVemFalhaXML

      aAttach := cDirPleno + "\VONFEUTIL2G.LOG"  // anexo do erro

      lErroVemFalhaXML := .F.

   ELSE

      aAttach := cDirPleno + "\ERROR.LOG"  // anexo do erro

   ENDIF

   TRY

      oMsg := CREATEOBJECT ( "CDO.Message" )

      WITH OBJECT oMsg

         :Configuration = oCfg

         :From = CHR(34) + "Envio Automático de Erro da NF-e" + CHR(34)+ "joao@pleno.com.br"

         IF .NOT. EMPTY( cEmailResp )

            :To = "contato@pleno.com.br; joao@pleno.com.br" + "; " + ;
                  ALLTRIM(cEmailResp)


         ELSE

            :To = "contato@pleno.com.br; joao@pleno.com.br"

         ENDIF

         :Subject = "Envio Automático de Erro da NF-e"

         :MDNRequested = .F.  // nao quero confirmacao sou eu enviando.

         :TextBody = cErrorLog

         :AddAttachment(aAttach)

         :Send()

      END WITH

      MsgInfo( "Email de Erro Enviado com Sucesso..." +CRLF+ ;
               "Tecle <Enter> Para Continuar...                        ",       ;
               "Atenção - Erro Enviado com Sucesso ao Suporte.         " )

   CATCH oError

      MsgInfo( "Não Foi possível Enviar o e-Mail!"                    +CRLF+ ;
               "Configure o Enviador de Email da Sua Empresa."        +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+ ;
               "Mensaje: "   + oError:Description, "CDO.Message" )
   END TRY

RETURN NIL
 


Regards, saludos.

Re: Enviar Correos CDO con fwh2307

PostPosted: Mon Aug 21, 2023 8:28 pm
by EASYSOFT
Gracias

No da error sale este mensaje
MsgInfo("No fue posible enviar el correo")

Voy a probar las alternativas sugeridas y comentaré

Saludos

Re: Enviar Correos CDO con fwh2307

PostPosted: Mon Aug 21, 2023 8:42 pm
by EASYSOFT
Jimmy wrote:hi,

how does you oCfg look like :?:
Code: Select all  Expand view
Configuration = oCfg


Contiene lo siguiente :

CDO.Configuratio
n

Re: Enviar Correos CDO con fwh2307

PostPosted: Mon Aug 21, 2023 9:06 pm
by EASYSOFT
Este es el error

https://ibb.co/vZnkWmJ

Saludos

Re: Enviar Correos CDO con fwh2307

PostPosted: Mon Aug 21, 2023 9:31 pm
by cmsoft
Con que cuenta de correos envias ? (Gmail, yahoo, outlook?)
Por las dudas, mira este hilo en otro foro que habla del tema
http://hmgforum.com/viewtopic.php?t=3473&sid=0c209235f17e72220599b75a60092752

Re: Enviar Correos CDO con fwh2307

PostPosted: Mon Aug 21, 2023 9:50 pm
by EASYSOFT
cmsoft wrote:Con que cuenta de correos envias ? (Gmail, yahoo, outlook?)
Por las dudas, mira este hilo en otro foro que habla del tema
http://hmgforum.com/viewtopic.php?t=3473&sid=0c209235f17e72220599b75a60092752


Envio de gmail.

Voy a revisar el foro que me sugieres muchas gracias.

He revisado el foro y las sugerencias, parte de lo que comentan refieren al tema de seguridades que maneja gmail, todo ese tema lo tengo controlado como decía al inicio del post, el problema se me presenta solo con la nueva versión de fwh2307.

Saludos

Re: Enviar Correos CDO con fwh2307 RESUELTO

PostPosted: Mon Aug 21, 2023 10:42 pm
by EASYSOFT
Resuelto.

EL problema es la opción password del get, lo he comentado y se envió el mensaje, voy a inventigar que tiene de nuevo esta opción o si es algo Adicional

@ 030, 006 GET oGet[2] VAR cPass SIZE 80, 10 PIXEL OF oDlg Update
* oGet[2]:lPassWord := .T.

Re: Enviar Correos CDO con fwh2307 RESUELTO

PostPosted: Mon Aug 21, 2023 11:03 pm
by EASYSOFT
EASYSOFT wrote:Resuelto.

EL problema es la opción password del get, lo he comentado y se envió el mensaje, voy a inventigar que tiene de nuevo esta opción o si es algo Adicional

@ 030, 006 GET oGet[2] VAR cPass SIZE 80, 10 PIXEL OF oDlg Update
* oGet[2]:lPassWord := .T.


Quedo de la siguiente manera

@ 030, 006 GET oGet[2] VAR cPass SIZE 90, 10 PIXEL OF oDlg password Update