Clipper On Line • Ver Tópico - e-mail no harbour 3.2
Página 1 de 5

e-mail no harbour 3.2

MensagemEnviado: 22 Jul 2015 09:52
por Softwhouse
Testei diversos exemplos de envio de e-mail pelo harbour sem sucesso. Tenho usado a classe CDO que começou a dar problemas. Gostaria de saber se alguém tem um exemplo que funcione no harbour 3.2.

Obrigado.

e-mail no harbour 3.2

MensagemEnviado: 22 Jul 2015 10:16
por JoséQuintas
Convém alertar duas coisas:
- Pode ter diferença entre o Harbour 3.2 e 3.4
- Com o Harbour padrão, somente contas de mail sem conexão segura (gmail por exemplo não dá).
Pra esse tipo de email, precisaria gerar o Harbour com a libcurl.

Sobre o CDO:
É problema com qualquer email, ou somente alguns?
Convém lembrar que a porta padrão deixou de ser 25, e ainda tem provedor/programa não atualizado.
A correta é 587.

Só olhar a pasta da hbtip.
Trata-se de uma única função.
Sendmail, ou algo assim. no 3.4 é tip_MailSend()

e-mail no harbour 3.2

MensagemEnviado: 22 Jul 2015 10:29
por Itamar M. Lins Jr.
Ola!
Com o Harbour padrão, somente contas de mail sem conexão segura (gmail por exemplo não dá).

Quando eu usava o 3.2 o único que não funcionava era o hotmail.com/outlook, o gmail.com ia de boa e o yahoo também.

Agora depois das correções, eu não testei mais, mas acredito que todos funcionem.

Saudações,
Itamar M. Lins Jr.

e-mail no harbour 3.2

MensagemEnviado: 22 Jul 2015 10:58
por Softwhouse
José,

Então está aí o problema. O provedor exige conexão segura, é gmail, a porta é 465.

No CDO, está apresentando erro em uma máquina, vou verificar.

Obrigado.

e-mail no harbour 3.2

MensagemEnviado: 22 Jul 2015 11:35
por janio
Eu envio email atraves do CDO pelo gmail sem problema!

Detalhe importante: ha uma configuração na conta de email do gmail que deve ser marcada para permissão de ENVIO de email por "fonte nao segura"... tipo isso. Não lembro direito o nome da configuração, mas é só marcar la q funciona direitinho.

e-mail no harbour 3.2

MensagemEnviado: 22 Jul 2015 12:16
por janio
A porta eh 465.

Em configurações da conta, em segurança, procurar "Desativar acesso a apps menos seguros" -> marcar ATIVAR!

Janio

e-mail no harbour 3.2

MensagemEnviado: 23 Jul 2015 00:13
por fladimir
no CDO se a Dll padrão não estiver registrada no Windows (ocorreu comigo em 1 cliente apenas q tinha um servidor 2003) da erro ao tentar enviar

Ai depois de muito pensei q se fosse erro no sistema daria em outras maquinas então comecei as pesquisas a nível de SO x CDOSys e pensei em mandar registrar a Dll novamente... Deu certo.

e-mail no harbour 3.2

MensagemEnviado: 23 Jul 2015 16:37
por cjp
Meus amigos,

Preciso da ajuda de vocês para usar a hb_sendmail() com e-mail do Gmail. Eu já uso com outros e-mails, mas no Gmail não está funcionando. Estou tentando assim:

hb_sendmail("smtp.gmail.com",465,"prof.inaciodecarvalho@gmail.com",{dstmail+"@inaciocarvalho.com.br"},,,memoread(arqmand)+ansi(contmail),assmail,arqanx,"prof.inaciodecarvalho@gmail.com","minhasenha","pop.gmail.com",,,.T.,.t.,,,)


As variáveis estão todas corretas, funcionam exatamente assim com outro e-mail. Mudei apenas o smtp, o 465, o meu e-mail de envio, minha senha e o pop.

Detalhe: com estas configurações, eu consegui conferir essa mesma conta do Gmail no Outlook 2010.

Eu creio que o problema seja porque o Gmail exige SSL, o que não é exigido no meu provedor do outro e-mail. Mas eu não sei como alterar isso na hb_sendmail().

Alguém poderia me ajudar?

e-mail no harbour 3.2

MensagemEnviado: 23 Jul 2015 18:22
por Itamar M. Lins Jr.
Ola!
Bem, estou colocando o exemplo que tem na pasta contrib do harbour 3.2, no 3.4 é bem mais completo, tem mais exemplos.
Este exemplo esta na pasta do Harbour 3.2 \contrib\hbtip\tests\gmail.prg

/*
* Copyright 2009 Viktor Szakats (vszakats.net/harbour)
* www - http://harbour-project.org
*
* Gmail work with ssl on port 465 and with tls on port 587
* tls mode is fully automatic and require that ssl must be disabled at first (We will activate it on request after STARTTLS command)
*/

#require "hbssl"
#require "hbtip"

REQUEST __HBEXTERN__HBSSL__

#include "simpleio.ch"

PROCEDURE Main( cFrom, cPassword, cTo, cPort)

   IF ! tip_SSL()
      ? "Error: Requires SSL support"
      RETURN
   ENDIF

   hb_default( @cFrom    , "<myname@gmail.com>" )
   hb_default( @cPassword, "<mypassword>" )
   hb_default( @cTo      , "addressee@domain.com" )
   hb_default( @cPort    , "465" )

   ? hb_SendMail( ;
      "smtp.gmail.com", ;
      Val(cPort), ;
      cFrom, ;
      cTo, ;
      NIL /* CC */, ;
      {} /* BCC */, ;
      "test: body", ;
      "test: port "+cPort, ;
      NIL /* attachment */, ;
      cFrom, ;
      cPassword, ;
      "", ;
      NIL /* nPriority */, ;
      NIL /* lRead */, ;
      .T. /* lTrace */, ;
      .F., ;
      NIL /* lNoAuth */, ;
      NIL /* nTimeOut */, ;
      NIL /* cReplyTo */, ;
      iif(cPort=="465",.T.,.F.) /* lSSL */  )

   RETURN
   


Saudações,
Itamar M. Lins Jr.

e-mail no harbour 3.2

MensagemEnviado: 03 Ago 2015 17:03
por cjp
Tentei de todas as formas, mas ainda não funcionou.

Ele até retorna .t., aparentemente envia. Mas o destinatário não recebe o e-mail. Já testei com vários e-mails de destino (todos os que tenho).

e-mail no harbour 3.2

MensagemEnviado: 03 Ago 2015 18:42
por JoséQuintas
Lembro disso acontecer no próprio outlook caso não tivesse autenticação extra de usuário.
Nesse caso só funcionava e-mails dentro do próprio domínio, tipo entre funcionários da mesma empresa com mesma extensão de email.

Quanto a gmail, na última vez que vi precisava da libcurl pra funcionar.
Não tenho libcurl instalada, e aproveitei um exemplo da pasta hbtip, inclusive postado acima pelo Itamar:

   IF ! tip_SSL()
      ? "Error: Requires SSL support"
      RETURN
   ENDIF


Então fiz este teste:

procedure main
   ? tip_ssl()


Resultado:
.F.

e-mail no harbour 3.2

MensagemEnviado: 03 Ago 2015 19:09
por cjp
Sim, Quintas, mas observe que o exemplo do Itamar, acima, já faz essa verificação. Está passando da verificação, não está dando falso. Mas mesmo assim o destinatário não recebe o e-mail.

e-mail no harbour 3.2

MensagemEnviado: 03 Ago 2015 19:30
por JoséQuintas
Fez teste pra outros destinatários?
Conferiu se precisa autenticação extra?
Conferiu na conta no gmail, na internet, se está configurado pra enviar e-mails por programa externo?

No mais, vai ter que confirmar quem com usa gmail no Harbour.
Por enquanto ainda não uso, e ainda não tentei gerar Harbour com libcurl.
Por acaso fazendo isso fica dependente de DLL?

e-mail no harbour 3.2

MensagemEnviado: 04 Ago 2015 00:59
por cjp
Fiz o teste para todos os destinatários que eu poderia.

Que autenticação extra seria essa?

No Outlook está configurado assim:

Imagem

Configurar o gmail para usar programa externo? Como seria isso? Tentei achar alguma configuração no gmail, mas não achei.

e-mail no harbour 3.2

MensagemEnviado: 04 Ago 2015 08:43
por JoséQuintas
No outllook express ficava visível: tinha que marcar pra autenticar usuário.
Talvez seja o equivalente a autenticar pop3.

Pensando bem, como o exemplo da pasta tests inclui exemplo pra gmail, não deveria precisar de nada mais além do que está lá.
Se for Harbour 3.4 é a que foi postada, se for Harbour 3.2 precisa olhar lá na pasta.

e-mail no harbour 3.2

MensagemEnviado: 12 Ago 2015 00:56
por cjp
Eu uso o 3.2.

Testei compilar diretamente o gmail.prg que está na pasta contrib\hbtip\tests. Deu o seguinte erro ao executar:

Imagem

Também testei executar essa função de dentro do meu programa. Como disse antes, ela até roda, retorna .T., mas o destinatário não recebe o e-mail.

e-mail no harbour 3.2

MensagemEnviado: 14 Ago 2015 17:28
por Softwhouse
Inácio,

Conseguiu resolver ?

e-mail no harbour 3.2

MensagemEnviado: 14 Ago 2015 23:17
por cjp
Não consegui, meu caro.

Veja acima o resultado das minhas últimas tentativas, sem sucesso.

e-mail no harbour 3.2

MensagemEnviado: 15 Ago 2015 08:21
por ANDRIL
Já verificou se consta essa dll no seu Windows? Se utiliza o AcbrMonitor/AcbrNFeMonitor tem ela instalada no sistema, ou dentro da pasta de instalação desses aplicativos.

Caso não tenha, baixe um dos aplicativos acima apenas para obtê-la se for o caso, acho que não tem como postar em anexo por que zipada chega a 500mb.

Ate+

e-mail no harbour 3.2

MensagemEnviado: 15 Ago 2015 10:51
por Itamar M. Lins Jr.
Ola!
Baixem o Harbour deste lugar.
http://www.pctoledo.com.br/forum/viewtopic.php?f=43&t=16195

É bem completo.

Saudações,
Itamar M. Lins Jr.

e-mail no harbour 3.2

MensagemEnviado: 21 Ago 2015 00:53
por cjp
Achei várias versões da libeay32.dll no meu computador, mas não tinha nenhuma na pasta do Harbour.

Baixei o HB34 do link sugerido pelo Itamar, peguei essa lib e uma outra pedida e compilei com o HB32.

O gmail.exe, gerado a partir do exemplo do contrib, funcionou perfeitamente. Mas, quando tentei colocar no meu programa, está dando por falta da função hb_fun__hbextern__hbssl__. Quando eu acresço o libcurl.dll na compilação, ele dá "cannot find -llibcurl".

Eu acho que já tinha conseguido compilar com isso antes, não sei porquê agora não está funcionando. Será que esqueci alguma coisa?

e-mail no harbour 3.2

MensagemEnviado: 21 Ago 2015 08:05
por Itamar M. Lins Jr.
Ola!
"cannot find -llibcurl".

Isso não é falta de DLL é falta da CURL LIB.
 Pasta de C:\hb34\lib\win\mingw

02/07/15  21:02            13.900 liblibcurl.a
               1 arquivo(s)         13.900 bytes


está dando por falta da função hb_fun__hbextern__hbssl__.

Não é aconselhável misturar as versões 3.2 com 3.4.

O problema é que não é assim que devemos usar: Fazendo coisas que não está no escopo da instalação. Misturar A com B ou pegar código do xHarbou etc...

Olhar como está nosso PATH, desinstalar tudo, instalar só o que manda o manual. Estão misturando BCC com Mingw... hbmk2 da versão 3.4 com a versão 3.2...

Saudações,
Itamar M. Lins Jr.

e-mail no harbour 3.2

MensagemEnviado: 15 Fev 2016 09:03
por acf
Olá senhores(as).

Sou novato no harbour, mas converti meu aplicativo do Clipper 5.2 para o Harbour versão 3.2 e está funcionando corretamente sem nenhum problema. Inclusive
já coloquei pra rodar em um cliente para verificar possíveis problemas na conversão.

Estou neste tópico porque como abriu enormes possibilidades no Harbour estou aqui claro tentando enviar e-mail direto do sistema.

Peguei o exemplo GMAIL.PRG que fica na pasta ..\contrib\hbtip\ estou tentando compilar usando o HBMK2, mas ora consigo ora dá erro. Quando consigo gerar o executável e faço teste me retorna numa caixa (MessageBox) o texto:

"GMAIL.EXE - Ponto de entrada não encontrado"
"Não Foi possível localizar o pondo de entrada do procedimento EVP_Carmelia_128_cbc na DLL(dynamic-link library)
C:\hb32\contrib\hbtip\tests\GMAIL.EXE.

Apartir desta mensagem não sei qual o procedimento para resolver.

Este exemplo usa a função hb_SendMail(). É comumente a melhor solução para o envio de e-mail junto com anexos?

A forma de compilar faço usando assim:
hbmk2 gmail.hbp
o conteúdo do arquivo do gmail.hbp esta assim:

hbssl.hbc
hbtip.hbc

-w3 -es2

-oGMAIL
gmail.prg

Como indicados por alguns, consegui configurar a minha conta do gmail pra enviar e receber email por aplicativos não seguro e a porta deixei como 465

Se tiver algum irmão que possa me indicar a forma de como resolver a testar o exemplo fico aqui muito grato.

e-mail no harbour 3.2

MensagemEnviado: 15 Fev 2016 11:11
por acf
Coloquei a dll LIBEAY32.DDL na pasta do executável e dai solicitou uma outra dll chamada SSLEAY32.DDL copiei e dai não aparece mais mensagens.

Mas também não enviou um e-mail, porém cria dois arquivos de log chamados smtp-1 e smtp-2 contendo alguns escritos.

O que será que falta ainda?

e-mail no harbour 3.2

MensagemEnviado: 15 Fev 2016 12:06
por sygecom
Post como está usando e os erros.

e-mail no harbour 3.2

MensagemEnviado: 15 Fev 2016 22:13
por acf
Ufa consegui enviar o email.

Coisa boba mas pra quem esta iniciando, sempre parece complicado.

Simplesmente eu não estava retirando <> da função hb_default( @cFrom , "<myemail@gmail.com>" )

Feito isso, deu certo.

Fico grato Leonardo pela disponibilidade em me ajudar.

e-mail no harbour 3.2

MensagemEnviado: 15 Fev 2016 22:52
por cjp
Você conseguiu enviar e-mail pelo Gmail? Por favor, passe o caminho das pedras, pois faz tempo que estou tentando fazer isso e não consigo. Consigo com outros e-mails, mas do Gmail não consigo.

e-mail no harbour 3.2

MensagemEnviado: 16 Fev 2016 00:06
por acf
jcp,

por enquanto estou apenas utilizando o exemplo (GMAIL.PRG) que esta na pasta HB32\CONTRIB\HBTIP\TESTS
funcionou uma beleza. Fiz alguns teste com arquivos anexos e com cópias.

GMAIL.PRG:
/*
* Copyright 2009 Viktor Szakats (vszakats.net/harbour)
* www - http://harbour-project.org
*
* Gmail work with ssl on port 465 and with tls on port 587
* tls mode is fully automatic and require that ssl must be disabled at first (We will activate it on request after STARTTLS command)
*/

#require "hbssl"
#require "hbtip"

REQUEST __HBEXTERN__HBSSL__

#include "simpleio.ch"

Main("myname@domain.com", "password", "addressee@domain.com", "465")

PROCEDURE Main( cFrom, cPassword, cTo, cPort, cCCopia)

IF !tip_SSL()
? "Error: Requires SSL support"
RETURN
ENDIF

hb_default( @cFrom , "<myname@gmail.com>" ) // Aqui vc sabe melhor, que deve muda-los
hb_default( @cPassword, "<mypassword>" )
hb_default( @cTo , "<addressee@domain.com>" )
hb_default( @cPort , "465" )
hb_default( @cCCopia , "<CCaddressee@domain.com>" )

? hb_SendMail( ;
"smtp.gmail.com", ;
Val(cPort), ;
cFrom, ;
cTo, ;
cCCopia /* NIL CC */, ;
{} /* BCC */, ;
"Aqui o corpo da mensagem.", ;
"Aqui o Titulo da mensagem "+cPort, ;
NIL /* attachment */, ;
cFrom, ;
cPassword, ;
"", ;
NIL /* nPriority */, ;
NIL /* lRead */, ;
.T. /* lTrace */, ;
.F., ;
NIL /* lNoAuth */, ;
NIL /* nTimeOut */, ;
NIL /* cReplyTo */, ;
iif(cPort=="465",.T.,.F.) /* lSSL */ )

RETURN

- Copiei para a pasta que é criado o executavel GMAIL.EXE as dll´s LIBEAY32.DLL e SSLEAY32.DLL (No seu computador que ira encontra-los)

-Configurei a minha conta do gmail. Ativei POP e IMAP e trambem em Outras Configurações da conta do Google -> Aplicativos e sites conectados -> Permitir aplicativos menos seguros, ATIVE.

- Adicionei uma conta na conta de e-mail do outlook (Isso é necessario?)

- Compilei da seguinte forma:
HBMK2 GMAIL.HBP

- o gmail.hbp esta assim. (É bom colocar os arquivos abaixo na mesma pasta também)
hbssl.hbc
hbtip.hbc

-w3 -es2

-oGMAIL
gmail.prg

Isso é tudo!

Desculpe mas ainda não sei como colocar no modo que fica um código na mensagem. (tela azul)
Acredito que para você também não era necessário colocar o código fonte como exemplo, mas serve pra outros também.

e-mail no harbour 3.2

MensagemEnviado: 16 Fev 2016 00:12
por acf
jcp,

e com outros e-mails o que muda?

Você usa o hb_SendMail() mesmo ?

Att

Antonio Carlos

e-mail no harbour 3.2

MensagemEnviado: 27 Dez 2018 22:31
por Fernando queiroz
? hb_SendMail( ;
"smtp.gmail.com", ;
Val(cPort), ;
cFrom, ;
cTo, ;
NIL /* CC */, ;
{} /* BCC */, ;
"NF-e: " + "00001" + "/" + "000000001" +" Emitida para: " + "NOME DO CLIENTE FULANO DE TAL" + " CPF/CNPJ: " + "05.597.127/0001-53", ;
"CASA CEARENSE"+" - NF-E NOTA FISCAL ELETRONICA", ;
"C:\BENE\XML12181111194159000100550010000070421527821207.XML", ;
cFrom, ;
cPassword, ;
"", ;
NIL /* nPriority */, ;
NIL /* lRead */, ;
.T. /* lTrace */, ;
.F., ;
NIL /* lNoAuth */, ;
NIL /* nTimeOut */, ;
NIL /* cReplyTo */, ;
iif(cPort=="465",.T.,.F.) /* lSSL */ )

FIZ o anexo dessa forma mas não funcionou, alguém tem exemplo ???

e-mail no harbour 3.2

MensagemEnviado: 27 Dez 2018 22:47
por Jairo Maia
Fernando queiroz escreveu:FIZ o anexo dessa forma mas não funcionou, alguém tem exemplo ???
O anexo você está enviando como texto. Tem que ser Array:
{"C:\BENE\XML12181111194159000100550010000070421527821207.XML"}, ;

e-mail no harbour 3.2

MensagemEnviado: 27 Dez 2018 23:47
por Fernando queiroz
:{ :{ :{ :{
agora funcionou certinho

e-mail no harbour 3.2

MensagemEnviado: 28 Dez 2018 13:10
por cjp
Aqui ainda não funcionou. Estou testando assim:

if !hb_SendMail( ;
"smtp.gmail.com", ;
Val(cPort), ;
cFrom, ;
dstmail, ;
NIL /* CC */, ;
{} /* BCC */, ;
"teste1", ;
"teste2", ;
{""}, ;
cFrom, ;
cPassword, ;
"", ;
NIL /* nPriority */, ;
NIL /* lRead */, ;
.T. /* lTrace */, ;
.F., ;
NIL /* lNoAuth */, ;
NIL /* nTimeOut */, ;
NIL /* cReplyTo */, ;
iif(cPort=="465",.T.,.F.) /* lSSL */ )


Está retornando falso, mas sem motivo. Estou usando cPort="465". É isso?

e-mail no harbour 3.2

MensagemEnviado: 28 Dez 2018 13:13
por rubens
Liberou no Gmail para enviar email por aplicativo menos seguro.. acho que é isso...
Rubens

e-mail no harbour 3.2

MensagemEnviado: 28 Dez 2018 13:26
por Fernando queiroz
agora funcionando tudo certinho, muito bom :)) :)) :)) :)) :))

telasgc.jpg


tive de colocar algumas DLL dentro da pasta do programa

libeay32.dll
libgcc_s_sjlj-1.dll
libwinpthread-1.dll
ssleay32.dll

:-Y :-Y :-Y :-Y

e-mail no harbour 3.2

MensagemEnviado: 28 Dez 2018 13:29
por Fernando queiroz
Preferi criar uma conta de e-mail para o sistema em vez de usar a conta do cliente, facilita a instalação ficando um padrão
e não precisa ficar configurando toda conta de cliente para liberar programas menos segura e outras coisas, fazendo somente uma vez :-Y :-Y

e-mail no harbour 3.2

MensagemEnviado: 28 Dez 2018 13:56
por cjp
Liberou no Gmail para enviar email por aplicativo menos seguro.. acho que é isso...
Rubens


Não sabia que precisava disso. Tentei fazer isto agora, mas não achei nada sobre isso nas configurações do Gmail. Sabe onde fica?

e-mail no harbour 3.2

MensagemEnviado: 28 Dez 2018 13:59
por Fernando queiroz
verifiquei que durante o envio ele cria um arquivo de LOG com o nome
SMTP-X.log para cada e-mail enviado eu apago após a confirmação do envio
para não ficar cheio de arquivos dentro da pasta

:P :P :P :P :P

e-mail no harbour 3.2

MensagemEnviado: 28 Dez 2018 14:02
por Fernando queiroz
cjp escreveu:
Liberou no Gmail para enviar email por aplicativo menos seguro.. acho que é isso...
Rubens


Não sabia que precisava disso. Tentei fazer isto agora, mas não achei nada sobre isso nas configurações do Gmail. Sabe onde fica?


https://support.google.com/accounts/answer/6010255?hl=pt-BR

e-mail no harbour 3.2

MensagemEnviado: 28 Dez 2018 14:06
por cjp
Veja a mensagem que está dando:

O site admin.google.com é apenas para contas do G Suite. Não é possível usar contas do Gmail normais para fazer login em admin.google.com. Saiba mais

e-mail no harbour 3.2

MensagemEnviado: 28 Dez 2018 14:21
por Jairo Maia
Fernando queiroz escreveu:verifiquei que durante o envio ele cria um arquivo de LOG com o nome
SMTP-X.log para cada e-mail enviado eu apago após a confirmação do envio
para não ficar cheio de arquivos dentro da pasta

Altera a linha lTrace que está assim:
.T. /* lTrace */, ;
Para:
.F. /* lTrace */, ;
Isso faz com que o arquivo de Log não seja gerado.

e-mail no harbour 3.2

MensagemEnviado: 28 Dez 2018 14:53
por cjp
Curiosamente, o meu está com o trace .T., e mesmo assim não está criando o arquivo de log.

e-mail no harbour 3.2

MensagemEnviado: 28 Dez 2018 15:34
por Fernando queiroz
Jairo Maia escreveu:
Fernando queiroz escreveu:verifiquei que durante o envio ele cria um arquivo de LOG com o nome
SMTP-X.log para cada e-mail enviado eu apago após a confirmação do envio
para não ficar cheio de arquivos dentro da pasta

Altera a linha lTrace que está assim:
.T. /* lTrace */, ;
Para:
.F. /* lTrace */, ;
Isso faz com que o arquivo de Log não seja gerado.


certinho funcionando sem gerar o .LOG

:{ :{ :{

e-mail no harbour 3.2

MensagemEnviado: 28 Dez 2018 15:43
por Fernando queiroz
/* Copyright 2009 Viktor Szakats (vszakats.net/harbour) */

#require "hbssl"
#require "hbtip"

#if ! defined( __HBSCRIPT__HBSHELL )
REQUEST __HBEXTERN__HBSSL__
#endif

#include "simpleio.ch"

PROCEDURE Email_Envia( cFrom, cPassword, cTo, cHost, aFilesAttch, cBody, cSubject )

   LOCAL nPort
   LOCAL lSTARTTLS := .F.
   LOCAL lsucesso  := .F.

   IF ! tip_SSL()
      ? "Error: Requires SSL support"
      RETURN
   ENDIF
   hb_default( @cFrom    , "usuario@gmail.com" )
   hb_default( @cPassword, "password"  )
   hb_default( @cTo      , "usuario@hotmail.com" )
   hb_default( @cHost    , "google" )

   cHost := Lower( cHost )

   /* SMTPS works with SSL/TLS on port 465 and with STARTTLS
      on port 587. STARTTLS mode is fully automatic and requires
      SSL/TLS be disabled at first (it will be activated on
      request after STARTTLS command) */

   DO CASE
   CASE cHost == "apple" .OR. "@icloud.com" $ cFrom .OR. "@mac.com" $ cFrom .OR. "@me.com" $ cFrom
      cHost := "smtp.mail.me.com"; lSTARTTLS := .T.
   CASE cHost == "fastmail" .OR. "@fastmail.com" $ cFrom .OR. "@fastmail.fm" $ cFrom
      cHost := "smtp.fastmail.com"
   CASE cHost == "gmx.net" .OR. "@gmx.net" $ cFrom .OR. "@gmx.ch" $ cFrom .OR. "@gmx.de" $ cFrom
      cHost := "mail.gmx.net"; lSTARTTLS := .T.
   CASE cHost == "google" .OR. "@gmail.com" $ cFrom .OR. "@googlemail.com" $ cFrom
      cHost := "smtp.gmail.com"
   CASE cHost == "mail.ru" .OR. "@mail.ru" $ cFrom
      cHost := "smtp.mail.ru"
   CASE cHost == "netease" .OR. "@163.com" $ cFrom
      cHost := "smtp.163.com"
   CASE cHost == "office365"
      cHost := "smtp.office365.com"; lSTARTTLS := .T.
   CASE cHost == "outlook" .OR. "@outlook.com" $ cFrom .OR. "@hotmail.com" $ cFrom
      cHost := "smtp-mail.outlook.com"; lSTARTTLS := .T.
   CASE cHost == "sina" .OR. "@sina.com" $ cFrom
      cHost := "smtp.vip.sina.com"
   CASE cHost == "uol" .OR. "@uol.com.br" $ cFrom
      cHost := "smtps.uol.com.br"
   CASE cHost == "yahoo" .OR. "@yahoo.com" $ cFrom
      cHost := "smtp.mail.yahoo.com"
   CASE ":" $ cHost
      IF TUrl():New( cHost ):nPort != -1
         nPort := TUrl():New( cHost ):nPort
      ENDIF
      lSTARTTLS := ( nPort == 587 )
      cHost := TUrl():New( cHost ):cServer
   ENDCASE

   hb_default( @nPort, iif( lSTARTTLS, 587, 465 ) )

   ? "Host:", cHost, hb_ntos( nPort ), iif( lSTARTTLS, "(STARTTLS)", "" )

   lsucesso := tip_MailSend( ;
      cHost, ;
      nPort, ;
      cFrom, ;
      cTo, ;
      NIL /* CC */, ;
      {} /* BCC */, ;
      cBody, ;
      cSubject, ;
      aFilesAttch, ;
      cFrom, ;
      cPassword, ;
      "", ;
      NIL /* nPriority */, ;
      NIL /* lRead */, ;
      .F. /* lTrace */, ;
      .F., ;
      NIL /* lNoAuth */, ;
      NIL /* nTimeOut */, ;
      NIL /* cReplyTo */, ;
      nPort == 465 )

   RETURN lsucesso


código final do email.prg fiz algumas alterações na chamada da rotina

         cSubject := "SGC - NOTA FISCAL ELETRONICA NF-E"
         cBody    := "emitida por: " + HB_EOL() +;
                             FLAG->n_xFant+ HB_EOL() +;
                                   FLAG->n_xNome+ HB_EOL() +;
                             "CPF/CNPJ: " + FLAG->n_CNPJ + HB_EOL() +;
                             "NOTA FISCAL ELETRONICA Nr. " + NOTAFE->b_serie + "/" + NOTAFE->b_nNF + HB_EOL() + HB_EOL() +;
                     "para: " + HB_EOL() + ;
                                RTRIM(NOTAFE->e_xNome) + HB_EOL() +;
                                      "CPF/CNPJ: " + RTRIM(NOTAFE->e_CNPJ) + HB_EOL() +;
                             "VALOR: R$ " +  LTRIM(STR(NOTAFE->w_vNF,14,2)) + HB_EOL()+ HB_EOL() +;
                  "chave acesso: " + substr(NOTAFE->a_Id,4,44) + HB_EOL()+ HB_EOL() +;
                  "Obs: E-mail enviado automaticamente por SGC-SISTEMA DE GESTAO DE COMERCIO, nao responda."
         
         aFilesAttch := {cPrefixo + ".xml",cPrefixo + ".PDF"}
         
         lSucesso := Email_Envia( cFrom, cPassword, cTo, cHost, aFilesAttch, cBody, cSubject )
         IF ! lSucesso
            hwg_MsgInfo("E-MAIL NAO FOI ENVIADO"+ HB_EOL() )
         ELSE
            hwg_MsgInfo("E-MAIL FOI ENVIADO COM SUCESSO"+ HB_EOL() )
         ENDIF


funfando tudo redondinho :D :D :D :D :D

e-mail no harbour 3.2

MensagemEnviado: 29 Dez 2018 23:46
por cjp
Tentei desta última forma, mas tá dando erro na compilação: undefined reference to 'hb_func_hwg_msginfo', 'hb_func_tip_mailsend' e 'hb_fun_hbextern__hbssl__'.

Precisa colocar alguma coisa na compilação?

Da forma anterior não funciona? Parecia mais simples.

e-mail no harbour 3.2

MensagemEnviado: 30 Dez 2018 08:30
por Jairo Maia
Olá Inácio,

Acrescente em seu arquivo .hbp os seguintes arquivos:
hbssl.hbc
hbtip.hbc
A função de mensagem acho que é a HWG_MsgInfo, não seria? É a que está no exemplo acima. Essa função é da HWGUI, substitua pela Hb_Alert() para os testes.

e-mail no harbour 3.2

MensagemEnviado: 30 Dez 2018 23:03
por cjp
Ainda tá dando erro na compilação: hb_fun_tip_mailsend.

e-mail no harbour 3.2

MensagemEnviado: 31 Dez 2018 11:02
por Jairo Maia
Olá Inacio,

Entenda como enviar e-mail pelo Gmail e adapte os dados às suas necessidades.

Para melhor entendimento, proceda da seguinte forma:

Fase A-Libere sua conta Gmail para aceitar aplicativo de terceiros:
1-Abra sua conta de email Gmail;
2-Se você tem mais de uma conta Gmail, certifique-se de selecionar a conta que quer liberar;
3-Abra uma nova guia desse link: https://support.google.com/accounts/answer/6010255?hl=pt-BR;
4-Procure a frase: "1-Vá para a seção Apps menos seguros da sua Conta do Google", e clique no link dessa frase;
5-Em: "Permitir aplicativos menos seguros", ATIVE.

Fase B-Feito isso, proceda da seguinte forma:
1-Crie uma nova pasta em seu computador;
2-Descompacte o anexo desse post;
3-Edite o arquivo Gmail.Prg;
4-Coloque as informações de sua conta Gmail;
5-Digite Hbmk2 Gmail.hbp;
6-Será criado o arquivo executável de testes.

-Arquivos do anexo:
Gmail.Prg - fonte do exemplo
Gmail.hbp - script de compilação do hbmk2

FileXML.Xml - arquivo XML (fictício)
FilePDF.Pdf - arquivo PDF (fictício)

E as DLL´s necessários para executar o exemplo. Quando adaptar seu sistema, essas DLL´s (todas) precisam ficar na mesma pasta do executável de seu aplicativo:
libeay32.dll
libgcc_s_dw2-1.dll
libwinpthread-1.dll
ssleay32.dll

Gmail.rar
(860.08 KiB) Baixado 193 vezes

e-mail no harbour 3.2

MensagemEnviado: 31 Dez 2018 18:31
por cjp
Jairo, em primeiro lugar, muito obrigado pelo seu passo-a-passo, muito bem explicado e fácil de adaptar.

Entretanto, infelizmente, ainda não funcionou. Está dando falta da função tip_mailsend() na compilação. Fiz exatamente da forma como vc disse.

Será que não seria por algum problema na minha versão do Harbour? Uso a 3.2.

e-mail no harbour 3.2

MensagemEnviado: 01 Jan 2019 09:06
por Jairo Maia
Bom dia Inácio,

É possível que seja o Harbour desatualizado. Baixe o Harbour atualizado aqui e instale (clique em harbour-nightly-win.exe), veja se vai funcionar: https://sourceforge.net/projects/harbour-project/files/binaries-windows/nightly/

e-mail no harbour 3.2

MensagemEnviado: 01 Jan 2019 09:32
por JoséQuintas
O nome pode ser diferente entre Harbour 3.4 e 3.2.

hbmk2 -find mail

hbcurl.hbc (não instalado):

hb_curl_mail_address_to_email()
hb_curl_mail_address_to_name()

hbtip.hbc (instalado):

TIPMail()
tip_GetNameEmail()
tip_GetRawEmail()
tip_MailAssemble()
tip_MailSend()

hbwin.hbc (instalado):

win_MAPISendMail()

xhb.hbc (instalado):

HB_LogEmail()

josequintas.hbc (não instalado):

ze_sendmailclass()

e-mail no harbour 3.2

MensagemEnviado: 02 Jan 2019 00:05
por cjp
Quintas, não sei se te entendi bem, veja a imagem no anexo, por favor.

e-mail no harbour 3.2

MensagemEnviado: 02 Jan 2019 00:16
por cjp
Jairo, instalei o HB 3.4, mas ainda não deu certo. Veja no anexo, por favor.

e-mail no harbour 3.2

MensagemEnviado: 02 Jan 2019 06:57
por Jairo Maia
Olá Inácio,

Conforme informa sua mensagem, você tentou compilar com o Harbour 3.0.0. Não entendi o que foi que você fez.

Vamos tentar de novo. Proceda da seguinte forma:

1-Baixe o Harbour 3.2 conforma coloquei nesse post: http://www.pctoledo.com.br/forum/viewtopic.php?p=128219#p128219;
2-Instale o Harbour aceitando as definições padrões;

3-Abra o Internet Explorer (não confunda com Windows Explorer);
4-Na janela esquerda clique em Computador;
5-No menu superior clique na aba Propriedades do sistema;
6-Clique em Configurações avançadas do sistema;
7-Clique no botão Variáveis do sistema;
8-Na janela inferior chamada Variáveis do sistema, procure a variável Path e clique sobre ela (uma vez);
9-Clique no botão Editar;
10-Remova qualquer path para o Harbour que houver;
11-Acrescente o caminho onde foi instalado o Harbour, por padrão será na pasta Hb32, então acrescente ;X:\hb32\bin (onde X é a unidade em que você instalou o Harbour)

12-Se posicione na pasta do exemplo;
13-Digite apenas Hbmk2 Gmail.Hbp (sem colocar nenhum path adicional, a pasta já estará no path).

Veja se funciona.

e-mail no harbour 3.2

MensagemEnviado: 04 Jan 2019 23:13
por cjp
Eu fiz como vc disse. Abrindo o link indicado, cliquei em Download Lastet Version. Não seria aí?

Agora vi que ali está escrito 3.0.

Se não for em Download Lastet Version, é pra baixar como?

e-mail no harbour 3.2

MensagemEnviado: 05 Jan 2019 05:13
por Jairo Maia
cjp escreveu:Se não for em Download Lastet Version, é pra baixar como?
Como coloquei na mensagem do link: Clique em harbour-nightly-win.exe. Fica mais abaixo na página.

e-mail no harbour 3.2

MensagemEnviado: 11 Fev 2019 00:21
por cjp
Desculpe a demora, tive alguns problemas, só agora puder ver isto.

Baixei o 3.4 correto agora. Compilou sem problema.

Mas deu erro na execução. Vide os anexos.

Curioso é que os arquivos .dll citados estão na pasta.

O que ainda estou fazendo errado?

e-mail no harbour 3.2

MensagemEnviado: 12 Fev 2019 07:29
por Daniel
Ola voce esta com erro no path pois ainda esta compilando com o harbour 3.2
visto pela imagem que voce postou

e-mail no harbour 3.2

MensagemEnviado: 12 Fev 2019 10:01
por cjp
De fato, vi agora que ele está informando o 3.2.

Mas será que o problema é no path? Estou na própria pasta do 3.4, chamando direto o hbmk2, que está na pasta.

Será que o problema não é na versão baixada, que era pra ser a 3.4, mas ainda está na 3.2?

Digitando só hbmk2, ele aponta de novo a 3.2.

e-mail no harbour 3.2

MensagemEnviado: 12 Fev 2019 23:17
por JoséQuintas
Vamos repassar:

gmail: precisa liberar lá na conta de gmail

Harbour: precisa gerar com o recurso de comunicação segura, e pode ficar dependente de existir DLL

Detalhes? não sei, não uso o recurso. Uso uma conta que permita emails tradicionais e pronto.

e-mail no harbour 3.2

MensagemEnviado: 13 Fev 2019 12:34
por cjp
No meu gmail já está liberado.

Acho que o problema é mesmo na versão do Harbour. Desta vez eu baixei do link certo, mas, aparentemente, continua baixando a 3.2.

e-mail no harbour 3.2

MensagemEnviado: 22 Set 2020 20:59
por rossine
Boa noite,

Estou tentando compilar os exemplos postados aqui neste tópico, mas está ocorrendo estes 2 erros:

cc1.exe: warning: command line option '-std=c++11' is valid for C++/ObjC++ but not for C
cc1.exe: warning: command line option '-std=c++11' is valid for C++/ObjC++ but not for C
C:/Qt/Qt5.7.1/mingw32/Tools/mingw530_32/bin/../lib/gcc/i686-w64-mingw32/5.3.0/../../../../i686-w64-mingw32/bin/ld.exe: cannot find -lssl
C:/Qt/Qt5.7.1/mingw32/Tools/mingw530_32/bin/../lib/gcc/i686-w64-mingw32/5.3.0/../../../../i686-w64-mingw32/bin/ld.exe: cannot find -lcrypto
collect2.exe: error: ld returned 1 exit status
hbmk2: Erro: Executando linkeditor. 1
gcc.exe C:/TMP/hbmk_ijl9ly.dir/tipmail.o C:/TMP/hbmk_ijl9ly.dir/hbmk_6y68mk.o    -m32 -Wl,--nxcompat -Wl,--dynamicbase -Wl,--pic-executable,-e,_mainCRTStartup -mconsole -Wl,--start-group -Wl,-Bstatic -lhbtip -lhbssl -lssl -lcrypto -lcrypt32 -lhbextern -lhbdebug -lhbvm -lhbrtl -lhblang -lhbcpage -lgtcgi -lgtstd -lgtpca -lgtwin -lgtwvt -lgtgui -lhbrdd -lhbusrrdd -lrddntx -lrddcdx -lrddnsx -lrddfpt -lhbrdd -lhbhsx -lhbsix -lhbmacro -lhbcplr -lhbpp -lhbcommon -lhbmainstd -lkernel32 -luser32 -lgdi32 -ladvapi32 -lws2_32 -liphlpapi -lwinspool -lcomctl32 -lcomdlg32 -lshell32 -luuid -lole32 -loleaut32 -lmpr -lwinmm -lmapi32 -limm32 -lmsimg32 -lwininet -lhbpcre2 -lhbzlib -Wl,-Bdynamic   -Wl,--end-group -otipmail.exe  -Lc:/hrb_ming32qt571/lib


na minha pasta dos binários do harbour eu tenho estes 2 arquivos:

libhbssl.a
libhbcrypto.a


O que pode estar faltando ?

Obrigado,

e-mail no harbour 3.2

MensagemEnviado: 22 Set 2020 23:04
por Claudio Soto
Hola, por los mensaje de error dice que no puede encontrar las lib:
ssl
crypto

e-mail no harbour 3.2

MensagemEnviado: 22 Set 2020 23:29
por rossine
Olá Claudio,

Localizei as libs abaixo na pasta "OpenSSL"e copiei para meu diretório "lib"de harbour.

libcrypto.a
libcrypto.dll.a
libssl.a
libssl.dll.a



Agora consegui compilar os exemplos,

Gracias,

e-mail no harbour 3.2

MensagemEnviado: 23 Set 2020 02:30
por rossine
Olá,

Estou conseguindo enviar email via Tip_MailSend() , mas observei que o caracter "ã" não está sendo acentuado corretamente quando passado via HTML

Emitente: Nome do Emitente
Raz╞o Social do Emitente              <<<---------------Aqui
CNPJ: 11.111.111/0001-11
NF-e Série: 001 - Número: 00000001
Destinatário: Nome do Destinatário
CPF/CNPJ: 111.111.111-11
Valor: R$ 100,00
Chave para Consulta: 1111.2222.3333.4444.5555.6666.7777.8888.9999.0000.1111
Em caso de dúvida, ligue ou responda esse e-mail.
Obrigado pela Preferência por Nossa Loja.
@áéíóúàèìòùäëïöüâêîôûç


Vejam que os demais caracteres "acentuados" estão ficando corretos. Isto seria algum problema de CodePage ou teria outra solução ?

Obrigado,