Clipper On Line • Ver Tópico - Envio de email com o CobreBem

Envio de email com o CobreBem

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

Moderador: Moderadores

 

Envio de email com o CobreBem

Mensagempor ejukinha » 05 Abr 2018 08:39

Olá a todos.

Gostaria de saber se alguém ainda consegue, hoje em 2018, utilizar o CobreBem para envio de boleto POR EMAIL.

Vi vários exemplos na internet, converti, testei, etc, mas não gera erro e nem envia e-mail.

Tentei com contas do Google, Microsoft e e-mail interno, mas nada funcionou.

Vi várias postagens mais antigas, coisa de 2010, que funcionava muito bem essa funcionalidade, mas estou tentando pôr no sistema isso hoje, mas não tive sucesso.


Detalhe: Tenho um programa específico para envio de e-mail, e utilizo minha conta Google com a porta 465, mas se utilizo essa mesma conta no CobreBem com a porta 465, gera erro no método EnviaBoletosPorEmail(). Se eu uso a porta 587, não gera erro, mas também não envia o e-mail.


Segue abaixo o código que estou usando:

*
*
* ECO 04/04/2018
*
FUNCTION Teste(nNRBC,cCART)

LOCAL cSQL
LOCAL cDll := '\DLL\CobreBemX.dll'
LOCAL cCNPJ
LOCAL cArqLicenca

LOCAL aSQL

LOCAL hOldDll
LOCAL hDll

LOCAL oCbx
LOCAL oBoleto
LOCAL oEmailSacado

LOCAL lErro:=.F.

IF EMPTY(nNRBC) .OR. EMPTY(cCART)
   RETURN
ENDIF

IF !FILE(cDll)
   MSGSTOP('A DLL '+cDll+' não foi encontrada. Não é possível gerar preview do boleto...','ATENÇÃO')
   RETURN
ENDIF

hOldDll:=GetResources()
hDll   :=LoadLib32(cDll)

**************
BEGIN SEQUENCE
**************
   IF hDll <= 32
      MSGSTOP('Não foi possível inicializar a DLL '+cDll+'. Não é possível gerar preview do boleto...','ATENÇÃO')
      BREAK
   ENDIF

   cSQL:='SELECT CNPJ DO CLIENTE'
   aSQL:=sqlArray(cSQL)
   IF EMPTY(aSQL)
      MSGALERT('Erro ao obter dados da empresa logada, verifique !','ATENÇÃO')
      BREAK
   ENDIF
   cCNPJ:=STRZERO(VAL(aSQL[01,01]),14)

   cArqLicenca:='\Licenca\' + cCNPJ + '-' + STRZERO(nNRBC,3) + '-' + ALLTRIM(cCART)+'.conf'

   IF !FILE(cArqLicenca)
      MSGALERT("Arquivo de Licença para a carteira '"+ALLTRIM(cCART)+"' do banco '"+STRZERO(nNRBC,3)+"' não foi encontrado!","ATENÇÃO")
      BREAK
   ENDIF

   oCbx:=TOleAuto():New('CobreBemX.ContaCorrente')

   IF VALTYPE(oCbx) != 'O'
      MSGINFO('Erro ao tentar inicializar componente.','ATENÇÃO')
      BREAK
   ENDIF

   oCbx:ArquivoLicenca:=cArqLicenca

   oCbx:PadroesBoleto:PadroesBoletoImpresso:CaminhoImagensCodigoBarras := '\VSIS\'+SIGLC+'\COBREBEM\Imagens\'
   oCbx:PadroesBoleto:PadroesBoletoImpresso:LayoutBoleto:='Padrao'

   oCbx:PadroesBoleto:Demonstrativo := "DEMONSTRATIVO TESTE"

   oCbx:LocalPagamento := 'LOCAL DE PAGAMENTO'

   oBoleto:=oCbx:DocumentosCobranca:Add()

   oBoleto:DataDocumento                 := DTOC(DATE_SYS())
   oBoleto:DataVencimento                := DTOC(DATE_SYS()+30)
   oBoleto:NumeroDocumento               := '12345'
   oBoleto:ValorDocumento                := 19.00
   oBoleto:TipoDocumentoCobranca         := 'DMI'
   oBoleto:NossoNumero                   := '10000000'
   oBoleto:CNPJSacado                    := ALLTRIM(DSP(99999999999999,"C","J"))
   oBoleto:NomeSacado                    := "NOME DO SACADO"
   oBoleto:EnderecoSacado                := "ENDERECO DO SACADO"
   oBoleto:BairroSacado                  := "BAIRRO DO SACADO"
   oBoleto:CidadeSacado                  := "CIDADE DO SACADO"
   oBoleto:EstadoSacado                  := "UF"
   oBoleto:CepSacado                     := 99999999
   oBoleto:SacadorAvalista               := "SACADOR/AVALISTA"

   oBoleto:PadroesBoleto:InstrucoesCaixa = "<br><br>Não cobrar juros e multa após o vencimento"

   oCbx:PadroesBoleto:PadroesBoletoEmail:LayoutBoletoEmail:='PadraoImpressao'

   oCbx:PadroesBoleto:PadroesBoletoEmail:URLLogotipo:='http://www.cobrebem.com/imagenscbe/341.jpg'
   oCbx:PadroesBoleto:PadroesBoletoEmail:URLImagensCodigoBarras:='http://www.cobrebem.com/imagenscbe/'

   oCbx:PadroesBoleto:PadroesBoletoEmail:PadroesEmail:CopiaFrom:=.T.
   oCbx:PadroesBoleto:PadroesBoletoEmail:PadroesEmail:CopiaReply:=.F.
   oCbx:PadroesBoleto:PadroesBoletoEmail:PadroesEmail:FormaEnvio:=1//feeSMTPBoletoHTML $00000000
   oCbx:PadroesBoleto:PadroesBoletoEmail:PadroesEmail:Mensagem:='Corpo do e-mail'
   oCbx:PadroesBoleto:PadroesBoletoEmail:PadroesEmail:Assunto:='Assunto'

   oCbx:PadroesBoleto:PadroesBoletoEmail:PadroesEmail:EmailFrom:Endereco:='email@email.com'

   oCbx:PadroesBoleto:PadroesBoletoEmail:SMTP:Servidor:='smtp.gmail.com'
   oCbx:PadroesBoleto:PadroesBoletoEmail:SMTP:Porta:=465//465
   oCbx:PadroesBoleto:PadroesBoletoEmail:SMTP:Usuario:='email@email.com'
   oCbx:PadroesBoleto:PadroesBoletoEmail:SMTP:Senha:='senha'

   oEmailSacado:=oBoleto:EnderecosEmailSacado:Add()
   oEmailSacado:Nome:='Zé'
   oEmailSacado:Endereco:='destino@gmail.com'

   lErro:=.F.
   
   ***
   TRY
   ***
      oCbx:EnviaBoletosPorEmail()
   **********
   CATCH oErr
   **********
      //F_ERRO(oErr,.T.)
      lErro:=.T.
   **********
   END
   **********

   IF lErro
      ?'Erro'
   ELSE
      ?'Sucesso' 
   ENDIF
************
END SEQUENCE
************

FreeLib32(hDll)
SetResources(hOldDll)

RETURN
ejukinha
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 2
Data de registro: 05 Abr 2018 08:34
Cidade/Estado: Leme/SP
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Envio de email com o CobreBem

Mensagempor ejukinha » 05 Abr 2018 10:29

Vi que o cobrebem não tem suporte a protocolos SSL e TLS, por isso eu não estava conseguindo, acredito eu.

Consegui resolver meu problema de duas formas:

1 - Realizando a impressão do boleto em uma impressora PDF, pegando o arquivo e enviando por e-mail por rotina independente do Cobrebem

2 - Utilizando o método oCbx:GeraHTMLBoleto(0), criando esse arquivo HTML e anexando (ou transformando esse HTML em PDF e enviando).

Obrigado.
ejukinha
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 2
Data de registro: 05 Abr 2018 08:34
Cidade/Estado: Leme/SP
Curtiu: 0 vez
Mens.Curtidas: 0 vez




Retornar para Harbour

Quem está online

Usuários vendo este fórum: Bing [Bot] e 12 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