Luiz, segue abaixo um exemplo de como usar o Blat através da DLL, sem necessidade do arquivo blat.exe.
/****************************************
* Compilar: hbmk2 Blatdll.prg -lhbwin
****************************************/
#include "hbdyn.ch"
Func Main()
Local cFile:=DiskName()+":\"+CurDir()+"\relatorio.txt",;
vAssunto_email:="Teste envio de e-mail Blat - PCToledo",;
vMensagem_email:="Olá, tudo bem?"+hb_eol()+;
"Estou fazendo um teste no envio de e-mail via Blat"+hb_eol()+hb_eol()+;
"Toledo"
Private x_SMTP:="smtp.mail.yahoo.com"
Private x_Porta:=587
Private x_De_mail:="forumclipper@yahoo.com.br"
Private x_Resp_para:="forumclipper@yahoo.com.br"
Private x_User:="forumclipper"
Private x_Senha:="Xxx12345"
vPara_email:="toledo@pctoledo.com.br"
SETMODE(25,80)
EnviaEmail_(x_SMTP, x_De_mail, x_Resp_para, vPara_email, vAssunto_email, vMensagem_email, cFile, x_User, x_Senha, x_Porta )
Return
*******************************************************************
Procedure EnviaEmail_(_smtp, _de, _resp, _para_, _assunto_, _emai_, _anexo_, _usuario, _senha, _port )
LOCAL nRet, cMail:=""
nDLL:=hb_LibLoad('blat.dll')
cServerSMTP :=_smtp // endereço do servidor SMTP
nPortSMTP :=_port // porta SMTP
cUserAUTH :=_usuario // login usuario SMTP
cPasswordAUTH :=_senha // senha da conta
cFrom :=_de // endereço de e-mail de envio
cReplyTo :=_resp // endereço de e-mail para resposta
cCC :='' // Com cópia para
cBCC :='' // Com copia oculta para
cTO := _para_ // Lista de destinatarios - separar com virgula
cSubject :=_assunto_ // Assunto
cBodyFile :='' // Arquivo que contem a mensagem
cBody := _emai_ // Mensagem do e-mail
cAttachListBinFile := _anexo_ // Lista de anexo - separar com virgula
cLogFile := 'BlatMail.log' // nome do arquivo de log
cMail+= " -server " + cServerSMTP
cMail += ' -port ' + hb_ntos( nPortSMTP )
cMail += ' -u ' + cUserAUTH
cMail += ' -pw ' + cPasswordAUTH
cMail += " -f " + cFrom
cMail += ' -replyto ' + cReplyTo
IF !empt(cCC)
cMail += " -cc " + cCC
ENDIF
IF !empt(cBCC)
cMail += " -bcc " + cBCC
ENDIF
cMail += " -to " + cTo
cMail += ' -subject "' + cSubject + '"'
IF !empt(cBodyFile) .AND. FILE(cBodyFile)
cMail += " -bodyF " + cBodyFile
ELSE
cMail += ' -body "' + cBody + '"'
ENDIF
IF !empt(cAttachListBinFile)
cMail += " -af " + cAttachListBinFile
ENDIF
cMail += ' -log ' + cLogFile //se nao quiser gravar arquivo de log, RETIRE esta linha
cMail += ' -q '
nRet := hb_dynCall({"Send", nDLL, HB_DYN_CALLCONV_STDCALL},cMail)
hb_LibFree(nDLL)
IF nRet == 0
Msg_:= "E-Mail enviado com sucesso!"
ELSE
Msg_:= "Ocorreu um erro"
ENDIF
Alert(Msg_)
RETURN
Abraços,