Moderador: Moderadores
-
alxsts
- Colaborador

- Mensagens: 3092
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
Olá!
Ao contrário do Clipper, no [x]Harbour não é necessário usar ferramentas externas pois existem recursos nativos. No xHarbour existe a classe TipMail(). Segue exemplo: Particularmente nunca usei. Faça alguns testes para ver se funciona.
Fonte: xHarbour Language Reference Guide
Ao contrário do Clipper, no [x]Harbour não é necessário usar ferramentas externas pois existem recursos nativos. No xHarbour existe a classe TipMail(). Segue exemplo:
Código: Selecionar todos
// The example outlines the steps required for composing an eMail
// and sending it to an SMTP mail server.
PROCEDURE Main
LOCAL oSmtp, oEMail
LOCAL cSmtpUrl
LOCAL cSubject, cFrom, cTo, cBody, cFile
// preparing data for eMail
cSmtpUrl := "smtp://mailaccount:password@smtp.server.com"
cSubject := "Testing eMail"
cFrom := "MyName@Mail.server.com"
cTo := "YourName@another.server.com"
cFile := "File_Attachment.zip"
cBody := "This is a test mail sent at: " + DtoC(Date()) + " " + Time()
// preparing eMail object
oEMail := TIpMail():new()
oEMail:setHeader( cSubject, cFrom, cTo )
oEMail:setBody( cBody )
oEMail:attachFile( cFile )
// preparing SMTP object
oSmtp := TIpClientSmtp():new( cSmtpUrl )
// sending data via internet connection
IF oSmtp:open()
oSmtp:sendMail( oEMail )
oSmtp:close()
? "Mail sent"
ELSE
? "Error:", oSmtp:lastErrorMessage()
ENDIF
RETURN
Fonte: xHarbour Language Reference Guide
[]´s
Alexandre Santos (AlxSts)
Alexandre Santos (AlxSts)
Harbour: e-mail := hb_SendMail()
Código: Selecionar todos
/*
* $Id: gmail.prg 17184 2012-01-06 15:28:23Z vszakats $
*/
/*
* Copyright 2009 Viktor Szakats (harbour syenar.net)
* www - http://harbour-project.org
*/
#include "common.ch"
#include "simpleio.ch"
PROCEDURE Main( cFrom, cPassword, cTo )
DEFAULT cFrom TO "<myname@gmail.com>"
DEFAULT cPassword TO "<mypassword>"
DEFAULT cTo TO "addressee@domain.com"
? hb_SendMail( "smtp.gmail.com",;
465,;
cFrom,;
cTo,;
NIL /* CC */,;
{} /* BCC */,;
"test: body",;
"test: subject",;
NIL /* attachment */,;
cFrom,;
cPassword,;
"",;
NIL /* nPriority */,;
NIL /* lRead */,;
.T. /* lTrace */,;
.F.,;
NIL /* lNoAuth */,;
NIL /* nTimeOut */,;
NIL /* cReplyTo */,;
.T. )
RETURN
M., Ronaldo
by: IMATECH
IMATION TECNOLOGIA
by: IMATECH
IMATION TECNOLOGIA
-
DLZ
- Usuário Nível 3

- Mensagens: 184
- Registrado em: 09 Jun 2008 10:09
- Localização: Ibirubá - RS - Brasil
Código: Selecionar todos
// The example outlines the steps required for composing an eMail
// and sending it to an SMTP mail server.
PROCEDURE Main
LOCAL oSmtp, oEMail
LOCAL cSmtpUrl
LOCAL cSubject, cFrom, cTo, cBody, cFile
// preparing data for eMail
cSmtpUrl := "smtp://mailaccount:password@smtp.server.com"
cSubject := "Testing eMail"
cFrom := "MyName@Mail.server.com"
cTo := "YourName@another.server.com"
cFile := "File_Attachment.zip"
cBody := "This is a test mail sent at: " + DtoC(Date()) + " " + Time()
// preparing eMail object
oEMail := TIpMail():new()
oEMail:setHeader( cSubject, cFrom, cTo )
oEMail:setBody( cBody )
oEMail:attachFile( cFile )
// preparing SMTP object
oSmtp := TIpClientSmtp():new( cSmtpUrl )
// sending data via internet connection
IF oSmtp:open()
oSmtp:sendMail( oEMail )
oSmtp:close()
? "Mail sent"
ELSE
? "Error:", oSmtp:lastErrorMessage()
ENDIF
RETURN
-
DLZ
- Usuário Nível 3

- Mensagens: 184
- Registrado em: 09 Jun 2008 10:09
- Localização: Ibirubá - RS - Brasil
Código: Selecionar todos
/*
* $Id: gmail.prg 17184 2012-01-06 15:28:23Z vszakats $
*/
/*
* Copyright 2009 Viktor Szakats (harbour syenar.net)
* www - http://harbour-project.org
*/
#include "common.ch"
#include "simpleio.ch"
PROCEDURE Main( cFrom, cPassword, cTo )
DEFAULT cFrom TO "<myname@gmail.com>"
DEFAULT cPassword TO "<mypassword>"
DEFAULT cTo TO "addressee@domain.com"
? hb_SendMail( "smtp.gmail.com",;
465,;
cFrom,;
cTo,;
NIL /* CC */,;
{} /* BCC */,;
"test: body",;
"test: subject",;
NIL /* attachment */,;
cFrom,;
cPassword,;
"",;
NIL /* nPriority */,;
NIL /* lRead */,;
.T. /* lTrace */,;
.F.,;
NIL /* lNoAuth */,;
NIL /* nTimeOut */,;
NIL /* cReplyTo */,;
.T. )
RETURN
Vleu.. mãoos a obra agora ehehehe
-
gilmarbehenck
- Usuário Nível 1

- Mensagens: 3
- Registrado em: 11 Fev 2012 00:24
- Localização: São Leopoldo / RS
hb_sendmail
Ola pessoal,
adaptei o exemplo do colega colocando meus dados e ao executar a função gerou o log abaixo e retornou .f. da chamada
20120531-22:36:59 :INETCONNECT( smtp.gmail.com, 465 )
>> C5A03C <<
20120531-22:36:59 :INETERRORCODE( C5A03C )
>> 0 <<
20120531-22:36:59 :INETSENDALL( C5A03C, 30, HELO gilmarbehenck@gmail.com )
>> 30 <<
20120531-22:37:00 :INETRECVLINE( C5A03C, , 512 )
>> NIL <<
20120531-22:37:00 :INETERRORCODE( C5A03C )
>> -2 <<
Se alguém puder auxiliar, agradeço desde já
Também fiz testes com o objeto TipMail, executa normalmente, retorna ok mas não envia o email.
adaptei o exemplo do colega colocando meus dados e ao executar a função gerou o log abaixo e retornou .f. da chamada
20120531-22:36:59 :INETCONNECT( smtp.gmail.com, 465 )
>> C5A03C <<
20120531-22:36:59 :INETERRORCODE( C5A03C )
>> 0 <<
20120531-22:36:59 :INETSENDALL( C5A03C, 30, HELO gilmarbehenck@gmail.com )
>> 30 <<
20120531-22:37:00 :INETRECVLINE( C5A03C, , 512 )
>> NIL <<
20120531-22:37:00 :INETERRORCODE( C5A03C )
>> -2 <<
Se alguém puder auxiliar, agradeço desde já
Também fiz testes com o objeto TipMail, executa normalmente, retorna ok mas não envia o email.
Conforme o servidor de e-mail se faz necessário ajustar os parametros da função ( igual se faz no outlook por exemplo )
Try
Try
Código: Selecionar todos
LOCAL cFile := 'C:\TEMP\ERROS.TXT'
LOCAL cServer := 'smtp.gmail.com'
LOCAL nPort := 465
LOCAL cFrom := 'conta__s@gmail.com'
LOCAL xTo := 'conta__d@gmail.com'
LOCAL xCC := NIL
LOCAL xBCC := {}
LOCAL cBody := 'Relatorio de Erros.: ' + 'Data: ' + TRAN( DATE(), '@E' )
LOCAL cSubject := 'Erro.: ' + TRAN( DATE(), '@E' )
LOCAL aFiles := { cFile }
LOCAL cUser := cFrom
LOCAL cPass := 'password'
LOCAL cPopServer:= NIL
LOCAL nPriority := NIL
LOCAL lRead := .F.
LOCAL bTrace := .T.
LOCAL lPopAuth := .T.
LOCAL lNoAuth := .F.
LOCAL nTimeOut := NIL
LOCAL cReplyTo := NIL
LOCAL lTLS := .F.
LOCAL cSMTPPass := cPass
LOCAL cCharset := 'Win1252'
LOCAL cEncoding := ''
LOCAL bAux := hb_SendMail( cServer, nPort, cFrom, xTo, xCC, xBCC, cBody, cSubject, aFiles, cUser, cPass, cPopServer, nPriority, lRead, bTrace, lPopAuth, lNoAuth, nTimeOut, cReplyTo, lTLS, cSMTPPass, cCharset, cEncoding )
M., Ronaldo
by: IMATECH
IMATION TECNOLOGIA
by: IMATECH
IMATION TECNOLOGIA
-
gilmarbehenck
- Usuário Nível 1

- Mensagens: 3
- Registrado em: 11 Fev 2012 00:24
- Localização: São Leopoldo / RS
Qual servidor de e-mail esta usado ?
Para gmail a configuração esta perfeita...
Para gmail a configuração esta perfeita...
M., Ronaldo
by: IMATECH
IMATION TECNOLOGIA
by: IMATECH
IMATION TECNOLOGIA
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
O Gmail exige SSL
Eu uso o conforme abaixo:
Eu uso o conforme abaixo:
Código: Selecionar todos
**********************************************************************************************************************
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
xHarbour.org + Hwgui + PostgreSql
-
gilmarbehenck
- Usuário Nível 1

- Mensagens: 3
- Registrado em: 11 Fev 2012 00:24
- Localização: São Leopoldo / RS
Segue minha chamada, utilizo o gmail
Código: Selecionar todos
cFrom := "gilmarbehenck@gmail.com"
cPassword := "232100"
cTo := "gilmarbehenck@gmail.com"
? hb_SendMail( "smtp.gmail.com",;
465,;
cFrom,;
cTo,;
NIL /* CC */,;
{} /* BCC */,;
"test: body",;
"test: subject",;
NIL /* attachment */,;
cFrom,;
cPassword,;
NIL,;
NIL /* nPriority */,;
.F. /* lRead */,;
.T. /* lTrace */,;
.F.,;
.T. /* lNoAuth */,;
NIL /* nTimeOut */,;
NIL /* cReplyTo */,;
.T. ,;
cPassword ,;
"Win1232" ,;
'' )
Editado pela última vez por Pablo César em 04 Jun 2012 23:04, em um total de 1 vez.
Razão: Mensagem editada para colocar a tag [ code ]<br>Veja como utilizar esta tag: http://www.pctoledo.com.br/forum/faq.php?mode=bbcode#f2r1
Razão: Mensagem editada para colocar a tag [ code ]<br>Veja como utilizar esta tag: http://www.pctoledo.com.br/forum/faq.php?mode=bbcode#f2r1
Aparentemente pequena falha basica (para gmail)...
Código: Selecionar todos
aFiles := {}
lTls := .F.
M., Ronaldo
by: IMATECH
IMATION TECNOLOGIA
by: IMATECH
IMATION TECNOLOGIA