Automatizar um envio de relatorio via email [EDITADO]
Enviado: 21 Jul 2011 12:00
Amiguinhos,
Este exemplo é para envio usando BLAT.DLL:
Este exemplo é para envio usando BLAT.DLL:
Código: Selecionar todos
function blatEmail( cbody ,;
cserver ,;
cto ,;
cf ,;
csubject ,;
cu ,;
cpw ,;
cattach, lHtml )
lHtml := .t.
BlatCMD := [ blat.txt] + ;
[ -to ] + alltrim(cto) + ;
[ -server ] + alltrim(cserver) + ;
[ -mailfrom ] + alltrim(CL_Email) + ;
[ -subject "] + alltrim(csubject) + ["] + ;
[ -r ] + ;
[ -replyto ] + alltrim(CL_Email) + ;
[ -returnpath ] + alltrim(CL_Email) + ;
[ -u ] + alltrim(lower(cu)) + ;
[ -pw ] + alltrim(lower(cpw)) + ;
[ -log "email.log" -debug ] + ;
iif( lHtml, [ -html ], [] )
if empty( cAttach )
else
if ValType( cAttach ) == "A"
For nEle := 1 To Len( cAttach )
BlatCMD := BlatCMD + [ -attach "] + alltrim(cAttach[ nEle ]) + ["]
Next
else
BlatCMD := BlatCMD + [ -attach "] + alltrim(cAttach) + ["]
endif
endif
if lHtml
cBody := FormHtml( cSubject, cBody )
endif
rMemoWrit( "blat.txt", cbody )
fErase( "email.log" )
BlatLOG := SendB( BlatCMD )
RETURN .T.
DLL32 FUNCTION SendB( sBlatString AS STRING ) AS LONG PASCAL ;
FROM "SendBlat" LIB "Blat.dll"
Function rMemoWrit( _aquivo_, _conteudo_ )
nHandle := fCreate( _aquivo_ )
fWrite( nHandle, _conteudo_, LEN( _conteudo_ ) )
fClose( nHandle )
RETURN .T.
Function FormHtml( cSubject, cBody )
Local cOpen
cOpen := '<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd">' + CRLF
cClose := CRLF + 'Nossa empresa envia email somente para pessoas e empresas cadastradas em nosso sistema.' + CRLF + ;
'Caso tenha duvidas favor entrar em contato com nossa central de atendimento ao cliente.'
cHTML := ;
'<html>' + CRLF + ;
'<head>' + CRLF + ;
' <meta http-equiv="Content-Type"' + CRLF + ;
' content="text/html; charset=iso-8859-1">' + CRLF + ;
'</head>' + CRLF + ;
'<body>' + CRLF + ;
'<pre>' + CRLF + ;
cBody + CRLF + ;
'</pre>' + CRLF + ;
'</body>' + CRLF + ;
'</html>'
Return cOpen + cHTML + cClose