Clipper On Line • Ver Tópico - Email via CDO

Email via CDO

Projeto Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

 

Email via CDO

Mensagempor Ladinilson Sousa » 04 Ago 2016 11:48

Bom dia meus caros!

Estou tentando emviar e mail via CDO e não estou conseguindo e fiz uma comparação com o ACBRmonitorPlus, explico:

No CDO não tem uma configuração que apenas marcada no ACBR funciona o envio que é o TLS sem estar marcado o SSL. Observei isso e fiz um teste com CDO:

   aFiles   :={"C:\teste.txt"}
   cSubject :="Sem assunto" 
   aQuem    :="ladinilson@hotmail.com"
   cMsg     :="Corpo da Mensagem"
   cServerIp:="smtp-mail.outlook.com"
   cFrom    :="ladinilson@hotmail.com"
   cUser    :="ladinilson@hotmail.com"
   cPass    :=vsenha
   vPORTSMTP:= 25 // ou 587
   aCC      :="" //"copia@hotmail.com"
   aBCC     :="" //"copia_oculta@hotmail.com"
   lCONF    :=.F.
   lSSL     :=.T.
   
   CONFIG_MAIL(aFiles,cSubject,aQuem,cMsg,cServerIp,cFrom,cUser,cPass,vPORTSMTP,aCC,aBCC,lCONF,lSSL)


As configurações e envio:
**********************************************************************************************************************
   FUNCTION CONFIG_MAIL(aFiles,cSubject,aQuem,cMsg,cServerIp,cFrom,cUser,cPass,vPORTSMTP,aCC,aBCC,vEMAIL_CONF,wSSL_EMAIL)
   **********************************************************************************************************************
   local lRet := .f.
   local oCfg, oError
   local lAut  := .t.
   
     TRY
       oCfg := CREATEOBJECT( "CDO.Configuration" )
         WITH OBJECT oCfg:Fields
              :Item( "http://schemas.microsoft.com/cdo/configuration/smtpserver"             ):Value := cServerIp
              :Item( "http://schemas.microsoft.com/cdo/configuration/smtpserverport"         ):Value := vPORTSMTP
              :Item( "http://schemas.microsoft.com/cdo/configuration/sendusing"              ):Value := 2
              :Item( "http://schemas.microsoft.com/cdo/configuration/smtpauthenticate"       ):Value := lAut
              :Item( "http://schemas.microsoft.com/cdo/configuration/smtpusessl"             ):Value := wSSL_EMAIL
              :Item( "http://schemas.microsoft.com/cdo/configuration/sendusername"           ):Value := alltrim(cUser)
              :Item( "http://schemas.microsoft.com/cdo/configuration/sendpassword"           ):Value := alltrim(cPass)
              //:Item( "http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout"  ):Value := 30
                 :Update()
         END WITH
         lRet := .t.
     CATCH oError
       MsgInfo( "Não Foi possível Enviar o e-Mail!"  +HB_OsNewLine()+ ;
                "Error: "     + Transform(oError:GenCode,   nil) + ";" +HB_OsNewLine()+ ;
                "SubC: "      + Transform(oError:SubCode,   nil) + ";" +HB_OsNewLine()+ ;
                "OSCode: "    + Transform(oError:OsCode,    nil) + ";" +HB_OsNewLine()+ ;
                "SubSystem: " + Transform(oError:SubSystem, nil) + ";" +HB_OsNewLine()+ ;
                "Mensaje: "   + oError:Description, "Atenção" )
   
     END
     //--> FIM DAS CONFIGURAÇOES.
     if lRet
        lRet := Envia_Mail(oCfg,cFrom,aQuem,aFiles,cSubject,cMsg,aCC,aBCC)
     endif
   
   Return lRet
   
   ********************************************************************************
   FUNCTION ENVIA_MAIL(oCfg,cFrom,cDest,aFiles,cSubject,cMsg,aCC,aBCC,vEMAIL_CONF)
   ********************************************************************************
     local aTo := {}
     local lRet := .f.
     local nEle, oError
   
     aTo      := { cDest } //--> PARA
     nEle := 1
   
      for i:=1 to len(aTo)
          TRY
            oMsg := CREATEOBJECT ( "CDO.Message" )
              WITH OBJECT oMsg
                   :Configuration = oCfg
                   :From = cFrom
                   :To = aTo[i]
                   :Cc = aCC
                   :BCC = aBCC
                   :Subject = cSubject
                   :TextBody = cMsg
                   For x := 1 To Len( aFiles )
                       :AddAttachment(AllTrim(aFiles[x]))
                   Next
                   IF vEMAIL_CONF=.T.
                      :Fields( "urn:schemas:mailheader:disposition-notification-to" ):Value := cFrom
                      :Fields:update()
                   ENDIF
                   :Send()
              END WITH
              lRet := .t.
          CATCH oError
              MsgInfo("Não Foi Possível Enviar," +HB_OsNewLine()+;
                            "a Mensagem: "             +HB_OsNewLine()+;
                                  cSubject                   +HB_OsNewLine()+;
                                  "p/ o eMail: " + aTo[i] +HB_OsNewLine()+;
                      " - Erro: " + + oError:Description , "Atenção" )
              lRet := .f.
          END
      next
   
   Return lRet


Pesquisei sobre o TLS e descobri que esta configuração NÃO EXISTE no CDO pelo próprio site da Microsoft.

No ACBR...
Imagemfree image uploading

No ACBR usei a porta 587 e também usei a 25 (no caso para hotmail) e funciona no ACBR a 587 e smtp do jeito que esta e funciona!

A mensagem é a de sempre...DISP_E_MENBERNOTFOUND

Pergunto se alguém tem a solução ou se tem a rotina para enviar via ACBR?

Obrigado
Ladinilson Sousa
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 35
Data de registro: 09 Fev 2015 10:41
Cidade/Estado: Belém/PA
Curtiu: 1 vez
Mens.Curtidas: 0 vez

Email via CDO

Mensagempor Ladinilson Sousa » 04 Ago 2016 13:14

Obrigado mesmo assim pessoal, consegui pelo ACBr.
Ladinilson Sousa
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 35
Data de registro: 09 Fev 2015 10:41
Cidade/Estado: Belém/PA
Curtiu: 1 vez
Mens.Curtidas: 0 vez

Email via CDO

Mensagempor lucimauro » 05 Ago 2016 10:27

Bom dia;

Pelo CDO não envia pela porta 587 com TLS, também tenho esse mesmo problema.
Lembrando que isso você só precisa se for enviar email pelo outlook.com/Hotmail.com que são a mesma coisa.
lucimauro
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 448
Data de registro: 21 Set 2004 21:02
Cidade/Estado: Sobral-CE
Curtiu: 15 vezes
Mens.Curtidas: 19 vezes

Email via CDO

Mensagempor pauloa1 » 24 Abr 2018 20:47

Não estou conseguindo fecha o objeto.

oMsg:quit() não existe essa propriedade no cdo., como no excel, word etc..

Será que tem como fechar? preciso que ela feche pra liberar o arquivo anexado no email, pra poder deletar.

O arquivo só elçe deletado se sair do sistema.

Paulo
pauloa1
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 224
Data de registro: 25 Jun 2008 14:57
Cidade/Estado: Augusto Pestana-RS
Curtiu: 2 vezes
Mens.Curtidas: 11 vezes




Retornar para Harbour

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 5 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro