Email pelo Harbour
Moderador: Moderadores
- alaminojunior
- Colaborador

- Mensagens: 1717
- Registrado em: 16 Dez 2005 21:26
- Localização: Ubatuba - SP
Re: Email pelo Harbour
Só um alerta para o colega: Com esta função hb_sendmail() os email´s não têm chegado ao destino quando se usa servidores que exigem autenticação e segurança SSL, como Gmail e alguns outros.
Uma solução que tem funcionado é usando o objeto CDOSYS. Essa manda e chega direitinho no destino. Pesquise no fórum por CDOSYS que já existe a discussão, inclusive em andamento. Eu mesmo troquei todas as minhas hb_sendmail pelas rotinas com CDO.
Uma solução que tem funcionado é usando o objeto CDOSYS. Essa manda e chega direitinho no destino. Pesquise no fórum por CDOSYS que já existe a discussão, inclusive em andamento. Eu mesmo troquei todas as minhas hb_sendmail pelas rotinas com CDO.
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
MySQL c/ SQLRDD
HwGui + GTWVG
Re: Email pelo Harbour
Alamino,
Altera alguma coisa na função hb_sendmail() ? Você tem algum exemplo de uso.
Altera alguma coisa na função hb_sendmail() ? Você tem algum exemplo de uso.
Editado pela última vez por Toledo em 12 Fev 2011 12:45, em um total de 1 vez.
Razão: Mensagem editada! Evite citar (quote) a mensagem toda.
Razão: Mensagem editada! Evite citar (quote) a mensagem toda.
►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)
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)
- alaminojunior
- Colaborador

- Mensagens: 1717
- Registrado em: 16 Dez 2005 21:26
- Localização: Ubatuba - SP
Re: Email pelo Harbour
No caso essa hb_sendmail deixa de ser usada. Não difere em muita coisa não.asimoes escreveu:Altera alguma coisa na função hb_sendmail() ?
Código: Selecionar todos
FUNCTION envia_email(yarq)
Local yyarq:= curdrive()+":\"+curdir()+"\"+yarq // yarq no meu caso é um arquivo que mando em anexo
aFiles := {yyarq} // pode ser uma matriz com vários endereços
cSubject := alltrim(assunto)
aQuem := alltrim(destino)
cMsg := alltrim(obs)
cServerIp:= alltrim(cdpar000->msmtp) // servidor smtp
cFrom := alltrim(cdpar000->mfrom)
cUser := alltrim(cdpar000->muser)
cPass := hb_decrypt(alltrim(cdpar000->mpswd),"lkjhlkhdlkjhkjh") // senha, eu pego de um dbf criptografado
vPORTSMTP:= val(alltrim(cdpar000->mport))
aCC := "" // caracteres entre aspas
aBCC := "" // caracteres entre aspas
lCONF := .F.
lSSL := cdpar000->mssl // variável lógica
CONFIG_MAIL(aFiles,cSubject,aQuem,cMsg,cServerIp,cFrom,cUser,cPass,vPORTSMTP,aCC,aBCC,lCONF,lSSL)
deletefile(yyarq)
RETURN
**********************************************************************************************************
FUNCTION CONFIG_MAIL(aFiles,cSubject,aQuem,cMsg,cServerIp,cFrom,cUser,cPass,vPORTSMTP,aCC,aBCC,lCONF,lSSL)
**********************************************************************************************************
local lRet:= .f.
local oCfg, oError
local lAut:= cdpar000->mauth
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:= lSSL
:Item("http://schemas.microsoft.com/cdo/configuration/sendusername"):Value:= alltrim(cUser)
:Item("http://schemas.microsoft.com/cdo/configuration/sendpassword"):Value:= alltrim(cPass)
: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,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
:HTMLBody = cMsg
For x := 1 To Len( aFiles )
:AddAttachment(AllTrim(aFiles[x]))
Next
IF vEMAIL_CONF
:Fields("urn:schemas:mailheader:disposition-notification-to"):Value:= cFrom
:Fields:update()
ENDIF
:Send()
END WITH
lRet:= .t.
MsgInfo( "E-mail enviado com sucesso" , " EMAIL " )
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
oCfg:= nil
oMsg:= nil
Return lRetCompilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
MySQL c/ SQLRDD
HwGui + GTWVG
Re: Email pelo Harbour
Alamino,
Fiz um teste usando uma conta do gmail, funcionou.
Com as portas 25 e 465 enviou com a 587 não.
Fiz um teste usando uma conta do gmail, funcionou.
Com as portas 25 e 465 enviou com a 587 não.
►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)
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)
-
Laudelino Scarmagnani
- Usuário Nível 3

- Mensagens: 303
- Registrado em: 07 Fev 2007 10:54
Re: Email pelo Harbour
Leonardo,
ao compilar a rotina:
if hb_SendMail</SPAN>(cServerIP,porta,cFrom,aTo,,,cMsg,cSubject,,cUser,cPass,pop3,1,.F.,.T.,.T.,.F.)=.T.
alert('enviou com sucesso')
endif
da o seguinte erro.
Compiling 'UTIL.PRG'...
1002003004005006007008009001000UTIL.PRG(1022) Error E0030 Syntax error: "syntax error at '/'"
UTIL.PRG(1024) Error E0010 ENDIF does not match IF
11001200130014001500160017001800190020002100220023002 errors
No code generated
Eliminando o endif, tambem dá erro ao compilar.
Quanto ao CDOSYS, encontrei, pela busca, os comentários, porem, não consegui encontar a sintaxe ou como integrar isso ao meu sistema.
Laudelino
ao compilar a rotina:
if hb_SendMail</SPAN>(cServerIP,porta,cFrom,aTo,,,cMsg,cSubject,,cUser,cPass,pop3,1,.F.,.T.,.T.,.F.)=.T.
alert('enviou com sucesso')
endif
da o seguinte erro.
Compiling 'UTIL.PRG'...
1002003004005006007008009001000UTIL.PRG(1022) Error E0030 Syntax error: "syntax error at '/'"
UTIL.PRG(1024) Error E0010 ENDIF does not match IF
11001200130014001500160017001800190020002100220023002 errors
No code generated
Eliminando o endif, tambem dá erro ao compilar.
Quanto ao CDOSYS, encontrei, pela busca, os comentários, porem, não consegui encontar a sintaxe ou como integrar isso ao meu sistema.
Laudelino
-
Laudelino Scarmagnani
- Usuário Nível 3

- Mensagens: 303
- Registrado em: 07 Fev 2007 10:54
Re: Email pelo Harbour
Alessandro, boa tarde!
Obrigado pelo interesse.
Isso compila no xHarbour build 1.0.0 Intl. (SimpLex)? Tenho que incluir algo?
Laudelino
Obrigado pelo interesse.
Isso compila no xHarbour build 1.0.0 Intl. (SimpLex)? Tenho que incluir algo?
Laudelino
- Ale SB
- Usuário Nível 3

- Mensagens: 201
- Registrado em: 20 Jul 2004 17:30
- Localização: Campo Grande / MS
Re: Email pelo Harbour
Cara nao testei...com esta versao ai do xHb..ate pq...soh uso Hb...soh montei este este exemplo com xHb...pq...a maioria la do Forum de Fw usava xHb....
mas teste ai....a gente ja tira a duvida...eu acredito q roda sim...ate pq o CDOSYS eh apenas um componete do Windows.
Vc soh tem q tirar a parte do Fivewin ai...eh a parte de tela...as funçoes de configuraçao e envio..nao precisa mudar nada...
qq coisa grita nois ai...
@braços Ale
mas teste ai....a gente ja tira a duvida...eu acredito q roda sim...ate pq o CDOSYS eh apenas um componete do Windows.
Vc soh tem q tirar a parte do Fivewin ai...eh a parte de tela...as funçoes de configuraçao e envio..nao precisa mudar nada...
qq coisa grita nois ai...
@braços Ale
r]- alaminojunior
- Colaborador

- Mensagens: 1717
- Registrado em: 16 Dez 2005 21:26
- Localização: Ubatuba - SP
Re: Email pelo Harbour
O exemplo que eu postei mais acima é xHarbour. Está completo.
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
MySQL c/ SQLRDD
HwGui + GTWVG
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
Re: Email pelo Harbour
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Re: Email pelo Harbour
Na verdade tem um erro no fórum, que inclui um </SPAN> no codigo que agente posta. Mas vou tentar abaixo colocar o codigo de novo, mas se não der certo apenas retire </SPAN> do codigo:
Código: Selecionar todos
if hb_SendMail(cServerIP,porta,cFrom,aTo,,,cMsg,cSubject,,cUser,cPass,pop3,1,.F.,.T.,.T.,.F.)=.T.
alert('enviou com sucesso')
endifLeonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql
-
Laudelino Scarmagnani
- Usuário Nível 3

- Mensagens: 303
- Registrado em: 07 Fev 2007 10:54
Re: Email pelo Harbour
Leonardo, boa noite.
Inclui a rotina na forma acima e o sistema travou. O problema pode estar nos parâmetros?
Laudelino.
Inclui a rotina na forma acima e o sistema travou. O problema pode estar nos parâmetros?
Laudelino.
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Re: Email pelo Harbour
Pode sim, ser problemas nos parâmetros !
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql
Email pelo Harbour
Bom dia pessoal,
Eu envio meus emails pelo CDOSYS, mas preciso enviar email por um servidor próprio, tipo "mail.servidor.com"
Eu estou configurando ele assim:
.... e o CDOSYS me retorna a messagem de erro abaixo:
Alguém saberia me dizer como fazer isto ?
Obrigado,
Rossine.
Eu envio meus emails pelo CDOSYS, mas preciso enviar email por um servidor próprio, tipo "mail.servidor.com"
Eu estou configurando ele assim:
Código: Selecionar todos
with Object oCfg:Fields
:Item( "http://schemas.microsoft.com/cdo/configuration/smtpserver" ):Value := "mail.servidor.com"
...
end with
Código: Selecionar todos
Não consegui enviar este email
Error: 1
SubC: 1007
OSCode: -2147352567
SubSystem: WINOLE
Mensagem: Falha na conexão do transporte com o servidor.
(0x80040213)
Operação.: [SEND]
Argumento: [NIL]
Obrigado,
Rossine.
Rossine.
Harbour 3.4, MingW / Msvc, QT, Qt5xhb, GtQtc, DbfCdx, MySql/MariaDB.
Harbour 3.4, MingW / Msvc, QT, Qt5xhb, GtQtc, DbfCdx, MySql/MariaDB.