Clipper On Line • Ver Tópico - Email pelo Xharbour

Email pelo Xharbour

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

Moderador: Moderadores

 

Re: Email pelo Xharbour

Mensagempor alaminojunior » 18 Jun 2010 10:46

gralak escreveu:Nossa ta complicado resolver isso em hahahhahah


Meu caro, se a questão é apenas e tão somente enviar email´s "via xHarbour", dê uma atençãozinha ao meu tópico mais acima.
Testei com servidores Gmail, à princípio usando a porta 465 (SMTP) e não obtive êxito, mas ao trocar para 25 foi igual quiabo.
Boa sorte.
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Avatar de usuário

alaminojunior
Colaborador

Colaborador
 
Mensagens: 1689
Data de registro: 16 Dez 2005 20:26
Cidade/Estado: Ubatuba - SP
Curtiu: 27 vezes
Mens.Curtidas: 11 vezes

Re: Email pelo Xharbour

Mensagempor gralak » 18 Jun 2010 13:33

Então amigo alaminojunior eu também utilizei o exemplo que vc postou no forum
porém também não foi o email para o destino ...
Vc tem alguma idéia do que pode ser ...???
Avatar de usuário

gralak
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 232
Data de registro: 21 Mar 2007 13:28
Cidade/Estado: Cianorte/PR
Curtiu: 0 vez
Mens.Curtidas: 1 vez

Re: Email pelo Xharbour

Mensagempor alaminojunior » 18 Jun 2010 14:32

Desse jeito não vai ?
Function envia_email_pos
local cSubject  := hb_oemtoansi("PàS VENDA - ")+usuario
local        aTo:= { endereco@provedor.com.br }
local cServerIp := smtp.gmail.com
local cFrom     := fulanodetal@gmail.com
local cUser     := fulanodetal@gmail.com
local cMsg      := memoread("carta1.txt")
cPass           := alltrim(cdpar000->mpswd)
porta           := 25
pop3            := imap.gmail.com:993
if hb_SendMail(cServerIP,porta,cFrom,aTo,,,cMsg,cSubject,,cUser,cPass,pop3,1,.F.,.T.,.T.,.F.)=.T.

É como eu estou usando agora, e está indo.
Diferença de versões, será ?!?
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Avatar de usuário

alaminojunior
Colaborador

Colaborador
 
Mensagens: 1689
Data de registro: 16 Dez 2005 20:26
Cidade/Estado: Ubatuba - SP
Curtiu: 27 vezes
Mens.Curtidas: 11 vezes

Re: Email pelo Xharbour

Mensagempor sygecom » 19 Jun 2010 22:02

gralak escreveu:Nossa ta complicado resolver isso em hahahhahah
agora ta dando um retorno com o seguite erro:

DISP_MEMBERNOTFOUND

oque seria ...

Deve ter algum parâmetro errado, faça um teste pelo Outlook se der certo com certeza no sistema vai dar também. Ou post como está usando para tentar identificar junto com você o que está errado.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
leonardodemachado@hotmail.com

Faça você também sua doação esse fórum é uma lenda viva: http://www.pctoledo.com.br/doacao
Avatar de usuário

sygecom
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 7005
Data de registro: 21 Jul 2006 10:12
Cidade/Estado: Alvorada-RS
Curtiu: 1 vez
Mens.Curtidas: 130 vezes

Re: Email pelo Xharbour

Mensagempor gralak » 21 Jun 2010 08:12

Iai galera no anexo segue a maneira que eu estou fazendo como o exemplo do SYGECOM e o do alaminojunior
se vcs puderem me dizer onde esta o problema eu agradeço
Anexos
email2.prg
(32.99 KiB) Baixado 493 vezes
Avatar de usuário

gralak
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 232
Data de registro: 21 Mar 2007 13:28
Cidade/Estado: Cianorte/PR
Curtiu: 0 vez
Mens.Curtidas: 1 vez

Re: Email pelo Xharbour

Mensagempor alaminojunior » 21 Jun 2010 11:04

Gralak, faça o teste somente com as seguintes linhas:
Function envia_email_pos()
local cSubject  := "Assunto de Gmail"//hb_oemtoansi("P…S VENDA - ")+usuario
local        aTo:= {"destino@servidor.com.br"}
local cServerIp := "smtp.gmail.com"
local cFrom     := "remetente@gmail.com"
local cUser     := "remetente@gmail.com"
local cMsg      := "Teste Email para Gmail"//memoread("carta1.txt")
cPass           := "123456"//alltrim(cdpar000->mpswd)
porta           := 25
pop3            := "imap.gmail.com:993"
if hb_SendMail(cServerIP,porta,cFrom,aTo,,,cMsg,cSubject,,cUser,cPass,pop3,1,.F.,.T.,.T.,.F.)=.T.
   msginfo("ok")
else
   msginfo("no")
endif   
return(.t.)


No seu exemplo, havia junto a função hb_sendmail() que no meu caso está original dentro de alguma lib. Você deve ter pego ela modificada para atender alguma necessidade.
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Avatar de usuário

alaminojunior
Colaborador

Colaborador
 
Mensagens: 1689
Data de registro: 16 Dez 2005 20:26
Cidade/Estado: Ubatuba - SP
Curtiu: 27 vezes
Mens.Curtidas: 11 vezes

Re: Email pelo Xharbour

Mensagempor gralak » 22 Jun 2010 09:00

Iai Parcero alaminojunior copiei exatamente a função que vc me passou
e troquei somente os remetentes,destinatario e senha
porem ainda não enviou ...
O fato de eu estar compilando com a Hwgui faz alguma difereça ?

Se tiver alguma idéia aguardo vlw té+++
Avatar de usuário

gralak
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 232
Data de registro: 21 Mar 2007 13:28
Cidade/Estado: Cianorte/PR
Curtiu: 0 vez
Mens.Curtidas: 1 vez

Re: Email pelo Xharbour

Mensagempor clrod » 23 Jun 2010 13:52

Olá

Nunca fiz esse teste, mas posso adinatar que tentar enviar uma mensagem pelo SMTP do Gmail sem autenticar a conta, sem ser por protocolo seguro, não vai rolar. Você precisará usar a porta segura (465 se não me engano), fazer toda a comunicação criptografada usando SSL (não sei como se faz isso no xHarbour, apenas no Harbour) e precisrá enviar um pedido de autenticação em uma conta válida no Gmail antes de enviar a mensagem em si.

O caminho é esse, agora espero que alguém possa te ajudar mais detalhadamnete com a implementação desses passos.

T+
clrod
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 79
Data de registro: 17 Nov 2009 12:42
Cidade/Estado: São Paulo - SP
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Re: Email pelo Xharbour

Mensagempor alaminojunior » 23 Jun 2010 14:43

clrod escreveu:mas posso adinatar que tentar enviar uma mensagem pelo SMTP do Gmail sem autenticar a conta, sem ser por protocolo seguro, não vai rolar. Você precisará usar a porta segura (465 se não me engano)

Aqui comigo simplesmente funciona usando o exemplo que postei. Porta 25.
E tem um cliente que também usa a porta 25, servidor Gmail, no ACBrNFeMonitor, porém com o recurso de conexão segura SMTP habilitado.

Verifique se o antivírus não está barrando os e-mail´s de saída.
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Avatar de usuário

alaminojunior
Colaborador

Colaborador
 
Mensagens: 1689
Data de registro: 16 Dez 2005 20:26
Cidade/Estado: Ubatuba - SP
Curtiu: 27 vezes
Mens.Curtidas: 11 vezes

Re: Email pelo Xharbour

Mensagempor gralak » 13 Jul 2010 15:53

Caros amigos que tnato me ajudaram na parada do email
finalmente consegui estou utilizando uma ferramenta chamada
CDOSYS que faz essa autentificação dica passada pelo amigo Leonardo
vlw pela atenção galera se eu puder ajudar alguém com a mesma duvida e só chamar
até++++++++++++ :D :D :D
Avatar de usuário

gralak
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 232
Data de registro: 21 Mar 2007 13:28
Cidade/Estado: Cianorte/PR
Curtiu: 0 vez
Mens.Curtidas: 1 vez

Re: Email pelo Xharbour

Mensagempor rochinha » 13 Jul 2010 19:13

Amiguinho,

Esta mensagem indica que o objeto CDO não foi criado ou voce esta tentando acessar um método ou propriedade não existente nele.

Em tempo as portas de acesso ao Live.com são 25 e 995

Em todo o caso mesmo correndo o risco de apresentar algo já colocado aqui, eu também uso CDO para envio de emails:
...
  Private aProvedor := { { "UOL (Universo On-Line)"  ,'pop.uol.com.br'        ,'smtp.uol.com.br'        ,.t., 25,110,.f.},;
                         { "Terra"                   ,'pop.terra.com.br'      ,'smtp.terra.com.br'      ,.t., 25,110,.f.},;
                         { "IG (Internet Generation)",'pop.ig.com.br'         ,'smtp.ig.com.br'         ,.t.,465,995,.t.},;
                         { "iBest"                   ,'pop.ibest.com.br'      ,'smtp.ibest.com.br'      ,.t.,465,995,.t.},;
                         { "iTelefonica"             ,'pop.itelefonica.com.br','smtp.itelefonica.com.br',.t., 25,110,.f.},;
                         { "Gmail (Google Mail)"     ,'pop.gmail.com.br'      ,'smtp.gmail.com.br'      ,.t.,465,995,.f.},;
                         { "Yahoo"                   ,'pop.mail.yahoo.com.br' ,'smtp.mail.yahoo.com.br' ,.t., 25,110,.f.},;
                         { "Hotmail"                 ,'pop3.live.com'         ,'smtp.live.com'          ,.t., 25,995,.t.},;
                         { "BOL (Brasil On-Line)"    ,'pop3.bol.com.br'       ,'smtp.bol.com.br'        ,.t., 25,110,.f.},;
                         { "ITM Networks"            ,'mail.5volution.com.br' ,'mail.5volution.com.br'  ,.t., 25,110,.f.} }
  nPosicao    := 10 //ASCAN( aProvedor, "ITM Networks" )
  smtp_Port   := aProvedor[ nPosicao, 5 ]
  lAuth       := aProvedor[ nPosicao, 4 ]
  smtp_server := aProvedor[ nPosicao, 3 ]
  smtp_SSL    := aProvedor[ nPosicao, 7 ]
  //
  objCDOSYSCon:=TOleAuto():New( "CDO.Configuration" )
  objCDOSYSCon:Fields:Item( "http://schemas.microsoft.com/cdo/configuration/smtpserver"):Value       := smtp_server
  objCDOSYSCon:Fields:Item( "http://schemas.microsoft.com/cdo/configuration/smtpserverport"):Value   := smtp_Port
  objCDOSYSCon:Fields:Item( "http://schemas.microsoft.com/cdo/configuration/sendusing"):Value        := 2
  objCDOSYSCon:Fields:Item( "http://schemas.microsoft.com/cdo/configuration/smtpauthenticate"):Value := 1
  objCDOSYSCon:Fields:Item( "http://schemas.microsoft.com/cdo/configuration/sendusername"):Value     := smtp_user
  objCDOSYSCon:Fields:Item( "http://schemas.microsoft.com/cdo/configuration/sendpassword"):Value     := smtp_pass
  //objCDOSYSCon:Fields:Item( "http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout"):Value := 30
  objCDOSYSCon:Fields:update()
  objCDOSYSMail:=TOleAuto():New( "CDO.Message" )
  objCDOSYSMail:Configuration := objCDOSYSCon
  objCDOSYSMail:From          := mail_from
  objCDOSYSMail:To            := mail_to
  objCDOSYSMail:Subject       := mail_subject
  if lHtml
     objCDOSYSMail:HTMLBody   := mail_message
  else
     objCDOSYSMail:TextBody   := mail_message
  endif
  objCDOSYSMail:Send()
  ...


No caso de usar o BLAT neste exemplo faço uso de sua .DLL:
...
    BlatCMD := [ blat.txt] + ;
                [ -server ]   + alltrim(cserver) + ;
                [ -to ]       + alltrim(cto) + ;
                [ -f ]        + alltrim(cf) + ;
                [ -mailfrom ] + alltrim(cf) + ;
                [ -subject "] + alltrim(csubject) + ["] + ;
                [ -r ]        + ;
                [ -u ]        + alltrim(cu) + ;
                [ -pw ]       + alltrim(cpw) + ;
                [ -log "email.log" -debug ] + ;
                iif( empty( cAttach ),[],[ -attach "] + alltrim(cattach) + ["])
     fErase( "email.log" )
     BlatLOG := SendB( BlatCMD )
...

DLL32 FUNCTION SendB( sBlatString AS STRING ) AS LONG PASCAL ;
      FROM "SendBlat" LIB "Blat.dll"


No dois métodos eu consegui envio de emails para clientes/servidores Hotmail.

No caso de uso intensivo de chamadas via OLE é boa a pratica de criar o objeto já no inicio do programa e deixar sua variavel visivel.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para fivolution@hotmail.com. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar de usuário

rochinha
Membro Master

Membro Master
 
Mensagens: 4538
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 800 vezes
Mens.Curtidas: 242 vezes

Re: Email pelo Xharbour

Mensagempor esbasso » 08 Fev 2011 17:02

acho que tem algum bug no xharbour
ja tentei de tudo e da o erro

Error CDO.Message/3 DISP_E_MEMBERNOTFOUND: SEND - oError:genCode = 1001
Called from source\rtl\win32ole.prg->TOLEAUTO:SEND(0)
Called from C:\xHarbour\rotinas\hcdoemail.000->ENVIO2(185)
Called from C:\xHarbour\Estoque6\ESTOQUE.000->MAIN(301)

HwGUI 2.17 xHarbour build 1.2.1 Intl. (SimpLex) (Rev. 6733)
Date:08/02/11
Time:18:01:25

uma vergonha rsrsrs
funciona em qualquer outra linguagem menso aqui
Luis Fernando Basso
Desenvolvedor VFP + XHARBOUR + HWGUI
lfbasso@gmail.com
http://www.engersoft.com.br
esbasso
Colaborador

Colaborador
 
Mensagens: 325
Data de registro: 24 Jan 2007 16:49
Cidade/Estado: CHAPECO/SC
Curtiu: 0 vez
Mens.Curtidas: 8 vezes

Re: Email pelo Xharbour

Mensagempor marcosgambeta » 08 Fev 2011 17:38

esbasso escreveu:Error CDO.Message/3 DISP_E_MEMBERNOTFOUND: SEND - oError:genCode = 1001
Called from source\rtl\win32ole.prg->TOLEAUTO:SEND(0)
Called from C:\xHarbour\rotinas\hcdoemail.000->ENVIO2(185)
Called from C:\xHarbour\Estoque6\ESTOQUE.000->MAIN(301)


Basso,

Tente assim:

No lugar de
objCDOSYSMail:Send()
use
objCDOSYSMail:_Send()

Não testei aqui. Estou me baseando em algo que lí certa vez numa discussão (não me recordo se foi na lista de desenvolvedores do Harbour ou do xHarbour).
Atenciosamente,
Marcos Antonio Gambeta
marcosgambeta
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 318
Data de registro: 16 Jun 2005 22:53
Curtiu: 2 vezes
Mens.Curtidas: 40 vezes

Re: Email pelo Xharbour

Mensagempor esbasso » 08 Fev 2011 17:59

infelizmente da o mesmo erro

Error CDO.Message/3 DISP_E_MEMBERNOTFOUND: _SEND - oError:genCode = 1001
Called from source\rtl\win32ole.prg->TOLEAUTO:_SEND(0)
Called from C:\xHarbour\rotinas\hcdoemail.prg->ENVIO2(186)
Called from C:\xHarbour\Estoque6\ESTOQUE.000->MAIN(266)

HwGUI 2.17 xHarbour build 1.2.1 Intl. (SimpLex) (Rev. 6733)
Date:08/02/11
Time:18:57:10

não consigo entender
pois é o ultimo comando e falha justamente no envio
nas demais propriedades tudo funciona

talvez seja algo no meu xharbour
Luis Fernando Basso
Desenvolvedor VFP + XHARBOUR + HWGUI
lfbasso@gmail.com
http://www.engersoft.com.br
esbasso
Colaborador

Colaborador
 
Mensagens: 325
Data de registro: 24 Jan 2007 16:49
Cidade/Estado: CHAPECO/SC
Curtiu: 0 vez
Mens.Curtidas: 8 vezes

Re: Email pelo Xharbour

Mensagempor sygecom » 08 Fev 2011 19:32

Olá Basso,
Eu uso exatamente essa função com xHarbour 1.2.1 e funciona perfeitamente, até com Hotmail roda que é uma beleza.
Ex de como uso:

**********************************************************************************************************************
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
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
leonardodemachado@hotmail.com

Faça você também sua doação esse fórum é uma lenda viva: http://www.pctoledo.com.br/doacao
Avatar de usuário

sygecom
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 7005
Data de registro: 21 Jul 2006 10:12
Cidade/Estado: Alvorada-RS
Curtiu: 1 vez
Mens.Curtidas: 130 vezes

Anterior Próximo



Retornar para Harbour

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