Clipper On Line • Ver Tópico - Enviar e-mail

Enviar e-mail

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

 

Enviar e-mail

Mensagempor susviela@bol.com.br » 14 Dez 2018 12:35

Estou fazendo uns testes para enviar e-mail com
HMG 3.4.4

#include <hmg.ch>
#require "hbssl"
#require "hbtip"

Function Main

        Load Window Main
        Main.Center
        Main.Activate

Return

Function clic_button_enviar()

    IF ! tip_SSL()
      MsgInfo( "Error: Requires SSL support" )
      RETURN Nil
   ENDIF
   
   msginfo("OK !")

Return Nil



Não consigo chegar no OK, mesmo não tendo erro de compilação e nem de execução.. !!
.
.
"E quando você perder o controle, colherá o que plantou."
=========================================
Carlos Alberto Nunes #Susviela
Site: https://www.PowerInformatica.com.br
=========================================
Blog xBase: https://programandoxbase.wordpress.com/
Blog TI: https://susviela.wordpress.com

( #ProgramandoxBase #AllxBase )
Avatar de usuário

susviela@bol.com.br
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 236
Data de registro: 30 Jun 2017 11:17
Cidade/Estado: São José / SC
Curtiu: 153 vezes
Mens.Curtidas: 24 vezes

Enviar e-mail

Mensagempor asimoes » 15 Dez 2018 17:43

Olá,

Tá usando qual compilador GCC, CLANG, Borland ?
â–ºHarbour 3.x | Minigui xx-x | HwGuiâ—„
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Enviar e-mail

Mensagempor JoséQuintas » 15 Dez 2018 18:25

Com Harbour 3.4 envio normalmente em Windows e Linux.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Enviar e-mail

Mensagempor asimoes » 15 Dez 2018 19:01

Olá,

Você tá incluindo as libs hbssl.hbc e hbtip.hbc ?
â–ºHarbour 3.x | Minigui xx-x | HwGuiâ—„
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Enviar e-mail

Mensagempor JoséQuintas » 18 Dez 2018 09:30

hbtip, só usar o exemplo do próprio Harbour.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Enviar e-mail

Mensagempor asimoes » 18 Dez 2018 11:14

A maioria dos provedores que tem serviço de email exigem ssl

Eu uso email do gmail e tenho que usar ssl (hbssl.hbc e hbtip.hbc ) + as libs que o Viktor disponibiliza na página : https://bintray.com/vszakats/generic/openssl
Tem versão 32 e 64 bits
â–ºHarbour 3.x | Minigui xx-x | HwGuiâ—„
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Enviar e-mail

Mensagempor asimoes » 18 Dez 2018 11:31

Exemplo:

Tem que linkar com as libs do Viktor

https://bintray.com/vszakats/generic/openssl

A última versão do OpenSSL é 1.1.1A

       AzulHTML     := '<span style="color:#0000FF">'
       VermelhoHTML := '<span style="color:#FF0000">'
       
       aArquivos    := {}
   
       WITH Object ClEmailSSL():New()
           :cUser     := "harbour"
           :cPassword := "harbour"
           :cFrom     := "harbour@gmail.com"
           :cAlias    := "Sistema Demo <" + :cFrom + "> "
           :aTo       := {"Harbour <Harbour@gmail.com>"}
           :cHost     := "smtp.gmail.com"
           :cAssunto  := "Log de sistema em: " + Hb_DtoC( Date(), "DD/MM/YYYY" ) + " " + Time()
           :cMensagem := AzulHTML + "Log de confirmação de atualização de arquivo(s) : " + ;
                        Hb_Eol() + ;
                        Hb_Eol()+ ;
                        "" + ;
                        Hb_Eol() + ;
                        "Em: " + Hb_DtoC(Date(), "DD/MM/YYYY") + " " + Time() + ;
                        Hb_Eol() + ;
                        "Estação: " + Hb_GetEnv( "computername" ) + ;
                        Hb_Eol()+ ;
                        VermelhoHTML + "Teste envio de eMail com OpenSSL" + ;
                        Hb_Eol() + ;
                        Hb_Compiler() + ;
                        Hb_Eol()+ ;
                        "HBSSL Version loaded: " + OpenSSL_Version()
           :aArquivo   := aArquivo //arquivo anexado
           :lRead      := .T.
           :nPriority  := 1
           :cUrlImagem := 'https://lh3.googleusercontent.com/287NbWC1cbSgR5CL6fcAVNMLgXHQGN9tIiFJvHYNhQfJ5XExT4DfDAdQHwgLinyWJayMwDgyolusCuw3w4hFP2H4qqmWMIVAhuqin5VRkylkbi-loiA8IP_Mt2Aj4CtauMYfMhvt7TivZfzkzMCsSh2Em2oXYxt9cX5c5YID-yQDASMOwj1fJV2eakF0njIo8eU4lKC01K1XT3BHm0V3ZuZQ8U4BlWqwmCutRirk3Dw1-O0D2rBqJo4gJokyZAECP3UCkQV4X0QaM8ip7LUgTe70rbQ8yLNrZ3GujkcTJxEypsUT6oRLE5PDy8tvmp162KUEOrCyllGisJGZjvVJ7BWEm7tGP8gIkJtgj_A-35VQLs-XjqfMw-8pxqKPzTj_xK3f4ELHCbXQ20ppj8PHKHB11-FQ_aeRzJ4SQ1dWs-ymM0K1yRVC_Bbuva02yXg4PNKK0V7TqE0MgKsRbhpqtZ7gKPSYNgJ80974iumqFdvwqQfB1SGQmoILEQ0-2hzl94ERCdwu-OORSxmpwUB3WOd6ZfIGZrxanTfBSL_x2bPSfgE-1uS7kBHNTNmgPigZzadUwn7iMgo3SwG80YsT94hHp26CtjebhP6wAf6DhPDr3uTPnetpIcXmQlFT0AA=s128-no'
           :nPorta     := 465
           :lSSL       :=( :nPorta == 465 )
           :Send()   
           IF :lRet
              MsgInfo("Email Enviado")
           ENDIF
      END

#include "simpleio.ch"
#include "fileio.ch"
#include "hbclass.ch"
#include "hbthread.ch"

#define HB_SYMBOL_UNUSED( symbol )  ( symbol := ( symbol ) )
*-----------------------------------------------------------------------------------------------------------------------------*
* Classe : ClEmailSSL
* Projeto:
* Autor  : Alexandre Simões
* Criação: 12/05/2016
*-----------------------------------------------------------------------------------------------------------------------------*

#if ! defined( __HBSCRIPT__HBSHELL )
   REQUEST __HBEXTERN__HBSSL__
#endif

MEMVAR lRetorno

CREATE CLASS ClEmailSSL
   PROTECTED :
   
   DATA cAssunto
   DATA cMensagem
   DATA cFonte
   DATA cImagem
   DATA lInformativo
   DATA cUser
   DATA cPassword
   DATA cAlias
   DATA cFrom
   DATA aTo
   DATA aCC
   DATA aBCC
   DATA cHost
   DATA nPriority
   DATA lRead
   DATA nPorta
   DATA lSSL
   DATA nTimeOut
   DATA cUrlImagem
   DATA cImagem
   DATA cBodyTemp
   DATA lRet
   
   EXPORTED :
   
   VAR aArquivo     AS Array   INIT {}
   VAR cAssunto     AS String  INIT ""
   VAR cMensagem    AS String  INIT ""
   VAR cImagem      AS String  INIT ""
   VAR lInformativo AS Logical INIT .F.
   VAR cUser        AS String  INIT ""
   VAR cPassword    AS String  INIT ""
   VAR cAlias       AS String  INIT ""
   VAR cFrom        AS String  INIT ""
   VAR aTo          AS Array   INIT {}
   VAR aCC          AS Array   INIT {}
   VAR aBCC         AS Array   INIT {}
   VAR cHost        AS String  INIT ""
   VAR nPriority    AS Integer INIT 3
   VAR lRead        AS Logical INIT .F.
   VAR nPorta       AS Integer INIT 465
   VAR lSSL         AS Logical INIT .F.
   VAR nTimeOut     AS Integer INIT 2000
   VAR cUrlImagem   AS String  INIT ""
   VAR cImagem      AS String  INIT ""
   VAR cBodyTemp    AS String  INIT ""
   VAR lRet         AS Logical INIT .F.
   
   METHOD Send()     
   METHOD SendEmailSSL( cHost, ;
                        nPorta, ;
                        cAlias, ;
                        aTo, ;
                        aCC, ;
                        aBcc, ;
                        cBodyTemp, ;
                        cAssunto, ;
                        aArquivo, ;
                        cUser, ;
                        cPassword, ;
                        nPriority, ;
                        lRead, ;
                        nTimeOut, ;
                        lSSL )
   METHOD PNGAsa( cImagem )
   METHOD HtmlEncodeJPEG( cFileContent )
   
   ENDCLASS

METHOD Send()
LOCAL bImagem, nWidth, nHeight, cTagIni, cTagFim

   IF ! tip_SSL()
      RETURN Nil
   ENDIF

   cTagIni := [<pre>]
     
   cTagFim := [</pre>] 
     
   IF ! Empty( ::cUrlImagem ) .AND. Empty( ::cImagem )
      ::cImagem := [<p><IMG SRC=] + '"' + ::cUrlImagem + '"' + [></p>]
   ENDIF
   
   ::cFonte := '<font color="#0000FF" face="lucida console" size="3">'
   
   IF ! Empty( ::cImagem ) .AND. Empty( ::cUrlImagem )
      Fi_Initialise()
      bImagem   := Fi_Load( FIF_PNG, ::cImagem, PNG_DEFAULT )
      nWidth    := Fi_GetWidth( bImagem )
      nHeight   := Fi_GetHeight( bImagem )
      //::cImagem := [<p><IMG SRC=] + ::HtmlEncodeJPEG( ::PNGAsa() ) + [ width = Hb_Ntos( nWidth ) height = Hb_Ntos( nHeight )></p>]
      ::cImagem := [<p><IMG SRC=] + ::HtmlEncodeJPEG( Hb_MemoRead( ::cImagem ) ) + [ width = Hb_Ntos( nWidth ) height = Hb_Ntos( nHeight )></p>]
      Fi_Deinitialise()
   ENDIF
   
   ::cMensagem   := cTagIni + ::cImagem + ::cFonte + ::cMensagem + cTagFim
   
   ::cBodyTemp   := Hb_GetEnv( "temp" ) + Hb_Ps() + "BODY.HTM"
   
   nFileHandle := fCreate( ::cBodyTemp )
                  fWrite( nFileHandle, ::cMensagem )
                  fClose( nFileHandle )
   
   lRetorno := .F.
                                   
   ::lRet := ::SendEmailSSL( ::cHost,;
                             ::nPorta,;
                             ::cAlias,;
                             ::aTo,;
                             ::aCC,;
                             ::aBcc,;
                             ::cBodyTemp,;
                             ::cAssunto,;
                             ::aArquivo,;
                             ::cUser,;
                             ::cPassword,;
                             ::nPriority,;
                             ::lRead,;
                             ::nTimeOut,;
                             ::lSSL )
   
   ::lRet := lRetorno
   
RETURN ::lRet

//#pragma -km+
METHOD PNGAsa( cImagem ) CLASS ClEmailSSL
   //#pragma __binarystreaminclude "..\avi\update.png" | RETURN %s
   
METHOD HtmlEncodeJPEG( cFileContent )
LOCAL cTxt, oEncoder := TipEncoderBase64():New()
   
    cTxt := ["] + "data:" + Hb_mimeFName( "update.png", "ptprapqp", "ptprapqp" ) + "; base64," + oEncoder:Encode( cFileContent ) + ["]

RETURN cTxt

METHOD SendEmailSSL( cHost, ;
                     nPorta, ;
                     cAlias, ;
                     aTo, ;
                     aCC, ;
                     aBcc, ;
                     cBodyTemp, ;
                     cAssunto, ;
                     aArquivo, ;
                     cUser, ;
                     cPassword, ;
                     nPriority, ;
                     lRead, ;
                     nTimeOut, ;
                     lSSL )

            lRetorno := tip_MailSend( cHost, ;
                                      nPorta, ;
                                      cAlias, ;
                                      aTo, ;
                                      aCC, ;
                                      aBcc, ;
                                      cBodyTemp, ;
                                      cAssunto, ;
                                      aArquivo, ;
                                      cUser, ;
                                      cPassword, ;
                                      "", ;
                                      nPriority, ;
                                      lRead, ;
                                      .F., ;
                                      .F., ;
                                      nTimeOut, ;
                                      NIL, ;
                                      .T., ;
                                      lSSL, ;
                                      NIL, ;
                                      NIL, ;
                                      NIL )
RETURN lRetorno
â–ºHarbour 3.x | Minigui xx-x | HwGuiâ—„
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Enviar e-mail

Mensagempor susviela@bol.com.br » 18 Dez 2018 12:03

Obrigado povo pelas dicas.

Eu também não gosto de muita coisa pendurada na árvore de Natal então, consegui enviar emails com o windows assim ...

win_OleCreateObject( "CDO.Configuration" )

Vou criar um pequeno tutorial e publicar lá no Blog, mas a principio eu gostei dessa solução, deu certo mas ainda não esta em produção vamos aos testes.
.
.
"E quando você perder o controle, colherá o que plantou."
=========================================
Carlos Alberto Nunes #Susviela
Site: https://www.PowerInformatica.com.br
=========================================
Blog xBase: https://programandoxbase.wordpress.com/
Blog TI: https://susviela.wordpress.com

( #ProgramandoxBase #AllxBase )
Avatar de usuário

susviela@bol.com.br
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 236
Data de registro: 30 Jun 2017 11:17
Cidade/Estado: São José / SC
Curtiu: 153 vezes
Mens.Curtidas: 24 vezes

Enviar e-mail

Mensagempor asimoes » 18 Dez 2018 12:42

Olá se quiser testar criei esse demo para ver como funciona:
h-OpenSSL.zip
Teste com OpenSSL
(1.85 MiB) Baixado 104 vezes
â–ºHarbour 3.x | Minigui xx-x | HwGuiâ—„
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Enviar e-mail

Mensagempor asimoes » 18 Dez 2018 12:48

susviela@bol.com.br escreveu:Eu também não gosto de muita coisa pendurada na árvore de Natal e


CDO tem suas limitações, agora o Windows é a grande árvore de natal que de vez enquanto balança derrubando seus enfeites( sistemas ) inclusive o CDO
â–ºHarbour 3.x | Minigui xx-x | HwGuiâ—„
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Enviar e-mail

Mensagempor susviela@bol.com.br » 18 Dez 2018 14:09

asimoes escreveu:agora o Windows é a grande árvore de natal que de vez enquanto balança derrubando seus enfeites( sistemas )


Verdade .. é isso mesmo; Eu mesmo uso Ubuntu como SO principal e virtualizo o Windows, tenho tido bons resultados assim.

Obrigado pelo exemplo OpenSSL - vou testar
.
.
"E quando você perder o controle, colherá o que plantou."
=========================================
Carlos Alberto Nunes #Susviela
Site: https://www.PowerInformatica.com.br
=========================================
Blog xBase: https://programandoxbase.wordpress.com/
Blog TI: https://susviela.wordpress.com

( #ProgramandoxBase #AllxBase )
Avatar de usuário

susviela@bol.com.br
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 236
Data de registro: 30 Jun 2017 11:17
Cidade/Estado: São José / SC
Curtiu: 153 vezes
Mens.Curtidas: 24 vezes

Enviar e-mail

Mensagempor JoséQuintas » 18 Dez 2018 17:14

susviela@bol.com.br escreveu:Eu mesmo uso Ubuntu como SO principal e virtualizo o Windows


Parece brincadeira, mas o Windows funciona melhor até mesmo como virtual dentro do próprio Windows.

O que leva a outra pergunta... será que podemos usar o W10 virtual dentro do W10 oficialmente, sem licença adicional?
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Enviar e-mail

Mensagempor susviela@bol.com.br » 18 Dez 2018 19:42

JoséQuintas escreveu:será que podemos usar o W10 virtual dentro do W10 oficialmente, sem licença adicional?


O windows 10 agora pode ser usado livremente, o único inconveniente é a mensagem solicitando o registro que aparece na tela e alguns pequenos "penduricalhos" da árvore de Natal, que não atrapalham em nada no uso do dia a dia.

Basta apenas para isso, na hora de instalar esse SO escolher a opção "Não tenho a chave de licença".
.
.
"E quando você perder o controle, colherá o que plantou."
=========================================
Carlos Alberto Nunes #Susviela
Site: https://www.PowerInformatica.com.br
=========================================
Blog xBase: https://programandoxbase.wordpress.com/
Blog TI: https://susviela.wordpress.com

( #ProgramandoxBase #AllxBase )
Avatar de usuário

susviela@bol.com.br
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 236
Data de registro: 30 Jun 2017 11:17
Cidade/Estado: São José / SC
Curtiu: 153 vezes
Mens.Curtidas: 24 vezes




Retornar para MiniGui

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 6 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