DLL do BLAT

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

Moderador: Moderadores

jelias
Usuário Nível 3
Usuário Nível 3
Mensagens: 260
Registrado em: 27 Ago 2008 11:32
Localização: Minas Gerais

DLL do BLAT

Mensagem por jelias »

Amiguinhos,

Estou tentando implementar em meus sistemas o uso da DLL do BLAT. Para tanto, estou usado a rotina que o Mestre Rochinha disponibilizou aqui no fórum. Meu interesse no uso da DLL é ter um processo mais rápido e seguro para envio de e-mail, mais o que ocorre é que fica muito lento e apresenta um falha no log que não consigo entender.
Se alguém puder ajudar, agradeço antecipadamente!

Código: Selecionar todos

FUNCTION BLATEMAIL( cbody ,;
		    cserver ,;
		    cto ,;
		    cf ,;
		    csubject ,;
		    cu ,;
		    cpw ,;
		    cattach,;
		    lHtml )
XlHtml := .t.
BlatCMD := [ blat.txt] + ;
	   [ -to ]	 + alltrim(cto) + ;
	   [ -server ]	 + alltrim(cserver) + ;
	   [ -mailfrom ] + alltrim(cf) + ;
	   [ -f ]	 + alltrim(cf) + ;
	   [ -subject "] + alltrim(csubject) + ["] + ;
	   [ -r ]	 + ;
	   [ -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 := BLATSEND( BlatCMD )
inkey(0)
RETURN .T.

	 
*DLL32 FUNCTION SendB( BlatCMD AS STRING ) AS LONG PASCAL ;
*      FROM "SendBlat" LIB "Blat.dll"

DLL32 FUNCTION BlatSend( BlatCMD AS STRING ) AS LONG PASCAL ;
      FROM "Send" 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

Chamada da função de envio do e-mail

Código: Selecionar todos

 blatemail("Teste dos testes",;
	     "mail.tpnet.psi.br",;
	     "julio@kiflor.com",;
	     "marinho@kiflor.com",;
	     "E-mail teste da nota fiscal",;
	     "marinho@kiflor.com",;
	     "senha",;
	     "",.T.)
Tenho este retorno do BLAT.DLL

Código: Selecionar todos

2013.10.06 11:43:00 (Sun)------------Start of Session-----------------
Blat v3.1.1 (build : Feb 27 2013 20:04:29)
32-bit Windows, Full, Unicode
Error: Wait a bit (possible timeout).
*** Error ***  SMTP server error
Error: Not a socket.
Error: Not a socket.
2013.10.06 11:43:31 (Sun)-------------End of Session------------------
Estou usando xHarbour 1.2.1 (Simplex) (Rev. 9421) BCC 5.5.1

Sds,

Júlio
xHarbour 1.2.1 (simplex) + BCC 5.8.2 + Hwgui + SQLRDD
Clipper 5.2e / Blinker 7
Júlio Cézar Elias
e-mail: jelias@tpnet.psi.br
jelias
Usuário Nível 3
Usuário Nível 3
Mensagens: 260
Registrado em: 27 Ago 2008 11:32
Localização: Minas Gerais

DLL do BLAT

Mensagem por jelias »

Amiguinhos,

Depois de muita luta, consegui resolver e enviar e-mail sem problemas.

Fiz uma mudança na linha de envio e na chamada da DLL conforme de vê abaixo.

Código: Selecionar todos

BlatLOG := SEND( BlatCMD )
DLL32 function Send( BlatString As STRING ) AS LONG PASCAL lib "blat.dll"
sds,

Júlio.
xHarbour 1.2.1 (simplex) + BCC 5.8.2 + Hwgui + SQLRDD
Clipper 5.2e / Blinker 7
Júlio Cézar Elias
e-mail: jelias@tpnet.psi.br
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

DLL do BLAT

Mensagem por rochinha »

Amiguinho,

Mais uma alteracao referente a colocacao da porta SMTP 587.

Código: Selecionar todos

function blatEmail( cbody ,;
               cserver ,;
               cto ,;
               cf ,;
               csubject ,;
               cu ,;
               cpw ,;
               cattach, lHtml, portSMTP )
     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)) + ;
                iif(!empty(portSMTP),[ -portSMTP ] + portSMTP, "" ) + ;
                [ -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 )
		/* cBody := cBody + [<BGSOUND balance=0 volume=0 src="http://www.dsa-bra.com.br/Aditivoautomotivo.mp3">] */
     endif
     rMemoWrit( "blat.txt", cbody )
     fErase( "email.log" )
     BlatLOG := SendB( BlatCMD )
     RETURN .T.
Voce devera passar no ultimo parametro o numero da porta, exemplo "587".
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.
Avatar do usuário
Alexandre Silva
Usuário Nível 3
Usuário Nível 3
Mensagens: 376
Registrado em: 26 Mar 2007 00:16
Localização: Itapema - SC

DLL do BLAT

Mensagem por Alexandre Silva »

Opa.
e voces estao conseguindo mandar para e-mail com dominio proprio, mas configurados no gmail ??
Como voces fazem no blat ?

Eu recebo esta mensagem: Must issue a STARTTLS command first

vi que no CDO tem o ssl , mas no Blat como configurar que o servidor requer conexao segura SSL ??

oCDOConf:Fields("http://schemas.microsoft.com/cdo/config ... smtpusessl" ):Value := .T.
* Clipper 5.2e/Gaspro 4.0 /CDX/Blinker 7.0 Harbour 3.2 Console Hbmk2
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

DLL do BLAT

Mensagem por sygecom »

Eu também não consegui usar com BLAT essas contas que usa SSL apenas com CDO e, o HOTMAIL parou de funcionar com o CDO não sei por que.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

DLL do BLAT

Mensagem por JoséQuintas »

Não aconselho usar a DLL do Blat.
O problema é que pode ocorrer GPF dependendo do problema de internet.
Eu usava aqui no meu servidor pra enviar emails de NFE 24 horas, e tinha que ficar olhando se o programa estava parado por um erro de GPF.
Agora uso o hbsendmail.
Acontece de emails não chegarem no destino, mas pelo menos o servidor não pára.
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
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

DLL do BLAT

Mensagem por sygecom »

Uso a DLL do BLAT faz tempo e nunca tive problema de GPF, único problema é com contas que precisam de SSL mesmo.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

DLL do BLAT

Mensagem por JoséQuintas »

Se tem chance de dar problema, aqui acontece.
Isso é uma coisa antiga.
O pior de tudo é que isso é sério.
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
Alexandre Silva
Usuário Nível 3
Usuário Nível 3
Mensagens: 376
Registrado em: 26 Mar 2007 00:16
Localização: Itapema - SC

DLL do BLAT

Mensagem por Alexandre Silva »

Opa...
estou recebendo essa mensagem quando uso o CDO
disp_e_exception
* Clipper 5.2e/Gaspro 4.0 /CDX/Blinker 7.0 Harbour 3.2 Console Hbmk2
Responder