Hb_SendMail()

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

Moderador: Moderadores

Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Hb_SendMail()

Mensagem por sygecom »

Para Hotmail, tem que ser lSSL=.T.

e
:Item( "http://schemas.microsoft.com/cdo/config ... thenticate" ):Value := .T.
:Item( "http://schemas.microsoft.com/cdo/config ... smtpusessl" ):Value := .T.

Isso funcionava até uns dois messes atraz...sei lá por que parou.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
clrod
Usuário Nível 2
Usuário Nível 2
Mensagens: 79
Registrado em: 17 Nov 2009 13:42
Localização: São Paulo - SP

Hb_SendMail()

Mensagem por clrod »

O HB_Sendmail tinha um bug que foi consertado no Harbour há pouco mais de um ano. No xHarbour provavelmente o bug permanece. Era justamente relacionado ao que vocês estão relatando. Era por isso que dava resultados inconsistentes. Lembram que sempre tinha um que dizia que funcionava ok e outro não conseguia mesmo com as configurações iguais? Dependia da configuração do servidor que a pessoa acessava. No Gmail mesmo variava de acordo com o servidor onde estava a conta da pessoa. E isso era por bug do HB_Sendmail que interpretava errado uma situação. O engraçado é que se você usasse o HB_Sendmail do jeito correto, só funcionava em servidores que estavam configurados de forma errada ou pelo menos com segurança desabilitada. Depois de consertado, para acessar servidores configurados corretamente, só usando o HB_Sendmail corretamente. No começo do ano vários servidores foram configurados corretamente, dando esses problemas em quem estava usando o HB_Sendmail "no modo bumba meu boi".
Softwhouse
Usuário Nível 3
Usuário Nível 3
Mensagens: 324
Registrado em: 07 Dez 2011 18:44
Localização: Porto Alegre/RS

Hb_SendMail()

Mensagem por Softwhouse »

Clrod,

Sendo assim, a única forma será migrar para o harbour. Tentei compilar no harbour 3.0 e a função hb_sendmail não foi reconhecida. Não conheço harbour, pode informar qual a lib que dever ser linkada e de que forma fazer isso no arquivo .hbp? e também qual a sintaxe correta para o hb_sendmail() no harbour? Grato!
Fernando
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Hb_SendMail()

Mensagem por sygecom »

Fernando,
Consegui usar o Hotmail com xHarbour e thunderbird, era o Avast que estava bloqueando os envio do hotmail, usei:
smtp= smtp.live.com
porta=25
ssl=.t.
usuario= leonardodemachado@hotmail.com
senha= **********

No xharbour em nem usava o hb_sendmail(), usei muito pouco em 2007, depois passei a usar por DLL do Blat e por: CREATEOBJECT( "CDO.Configuration" )
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Softwhouse
Usuário Nível 3
Usuário Nível 3
Mensagens: 324
Registrado em: 07 Dez 2011 18:44
Localização: Porto Alegre/RS

Hb_SendMail()

Mensagem por Softwhouse »

Leonardo, qual a versão do xHarbour que vc utilizou? Tentei com a 1.0 e a 1.2.1, desabiltei o anti-vírus, demora uns 30 segundos e dá erro. Como funciona o Blat ?
Fernando
Softwhouse
Usuário Nível 3
Usuário Nível 3
Mensagens: 324
Registrado em: 07 Dez 2011 18:44
Localização: Porto Alegre/RS

Hb_SendMail()

Mensagem por Softwhouse »

Tópico resolvido. Dois dias perdidos. Não funciona hb_sendmail, sendmail(), Tip, nem com Harbour nem com xHarbour. Funcionou CDO e somente com provedor pago. Desistí. BASTA! :?
Fernando
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Hb_SendMail()

Mensagem por sygecom »

Softwhouse escreveu:Leonardo, qual a versão do xHarbour que vc utilizou? Tentei com a 1.0 e a 1.2.1, desabiltei o anti-vírus, demora uns 30 segundos e dá erro.
Eu uso a versao 1.2.1 do xHarbour + bcc 5.5.1
Como funciona o Blat ?
Procure no fórum que tem exemplos
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Hb_SendMail()

Mensagem por sygecom »

Softwhouse escreveu:Não funciona hb_sendmail, sendmail(), Tip, nem com Harbour nem com xHarbour. Funcionou CDO e somente com provedor pago.
Você que não está sabendo usar o CDO, funciona e muito bem até mesmo com Hotmail. Acabei de testar novamente com Hotmail e funciona com xHarbour. Post como está usando..
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Hb_SendMail()

Mensagem por asimoes »

Eu uso com uma conta do gmail e funciona perfeito.
►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)
Softwhouse
Usuário Nível 3
Usuário Nível 3
Mensagens: 324
Registrado em: 07 Dez 2011 18:44
Localização: Porto Alegre/RS

Hb_SendMail()

Mensagem por Softwhouse »

Leonardo, estou fazendo assim com CDO:

Function Main()

aFiles :={'c:\email\arquivo.pdf'}
cSubject :='Em anexo arquivo.pdf'
aQuem :='destinatario@hotmail.com'
cMsg :='Teste de envio de e-mail'
cServerIp:='smtp.live.com'
cFrom :='remetente@hotmail.com'
cUser :='remetente@hotmail.com'
cPass :='123456'
vPortSmtp:=587 // 25 ou 465
aCC :='terceiro@hotmail.com'
aBCC :='qualquer@hotmail.com'
lConf :=.T.
lSSL :=.T.

CONFIG_MAIL(aFiles,cSubject,aQuem,cMsg,cServerIp,cFrom,cUser,cPass,vPORTSMTP,aCC,aBCC,lCONF,lSSL)

Return(Nil)

Funciona com Correio do Povo, Ibest e POP. Hotmail ou Outlook nem pensar. Testei com harbou, xharbour 1.0 e xharbour 1.2.1.

Hb_SendMail não funcionou com nenhum provedor e nenhuma versão do habour ou xharbour.
Fernando
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Hb_SendMail()

Mensagem por sygecom »

o HB_SENDMAIL é uma bosta mesmo, demora que é uma loucura.

o COD funciona, no hotmail para mim funcionou apenas na porta: 25 e você está usando 587, mude e teste.

Post como está seu: CONFIG_MAIL() quanto tenta mandar usando Hotmail.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Softwhouse
Usuário Nível 3
Usuário Nível 3
Mensagens: 324
Registrado em: 07 Dez 2011 18:44
Localização: Porto Alegre/RS

Hb_SendMail()

Mensagem por Softwhouse »

Código: Selecionar todos

CONFIG_MAIL(aFiles,cSubject,aQuem,cMsg,cServerIp,cFrom,cUser,cPass,vPORTSMTP,aCC,aBCC,lCONF,lSSL)

Return(Nil)


**********************************************************************************************************
Function Config_Mail(aFiles,cSubject,aQuem,cMsg,cServerIp,cFrom,cUser,cPass,vPORTSMTP,aCC,aBCC,lCONF,lSSL)
**********************************************************************************************************
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 // .T.
           :Item( 'http://schemas.microsoft.com/cdo/configuration/smtpusessl'             ):Value := lSSL    //  .T.
           :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
    Alert( '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‡äes.

  If lRet
     lRet := Envia_Mail(oCfg,cFrom,aQuem,aFiles,cSubject,cMsg,aCC,aBCC,lCONF)
  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
           Alert('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
Fernando
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Hb_SendMail()

Mensagem por JoséQuintas »

Uso a hbtip pra fazer atualização do meu sistema.
Com ela posso ter gráfico do download.
Mas se ela falha, o sistema já usa outro download alternativo.

Tem dias que a do Harbour não funciona.
Quando eu ainda olhava isso, dava pra perceber algo do tipo: o Harbour continuar tentando baixar o arquivo mesmo depois que tinha terminado, por não saber o tamanho.

Simplesmente deixei no sistema.
Quando o download falha pela hbtip, o sistema já faz pela outra opção.
Na maioria das vezes funciona, mas não sempre: mesmo site, mesmo acesso, mesmo compilador, mesmo fonte, tem dia que sim, tem dia que não.

Como hb_SendMail() usa a hbtip deve acontecer a mesma coisa.

Resolvi o problema dos emails de um jeito mais simples: registrei um domínio só pro meu sistema enviar emails.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"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 do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Hb_SendMail()

Mensagem por asimoes »

Faço as minhas atualizações de sistema por ftp, assinei o kinghost e ficou 100%
►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 do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Hb_SendMail()

Mensagem por JoséQuintas »

Minha atualização também é pela kinghost.
Nem sei se algum cliente percebe que deu erro, porque mostro a mensagem na tela e já uso msxml em seguida.
De vez em quando ainda vejo essa falha, mas não é sempre.
Mas quando acontece, mesmo repetindo o download falha de novo por hbtip, mas por msxml não.

Obs.
Quando falha mesmo assim já atualizou o sistema pelo msxml, só repito pra confirmar se hbtip continua falhando... e continua.
Horas depois, ou no dia seguinte, volta tudo ao normal.

José M. C. Quintas
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder