Página 1 de 1

Envio de email com anexo via blat

Enviado: 29 Out 2013 07:58
por luiz antonio da silva
Bom dia !

Enviei para downloads um exemplo de envio de email com anexo, corpo mht, lista de emails salva em arquivo ini,
exemplo bem simples mas que pode ser melhorado.

espero que sirva para alguém.

Link para download: Envio de e-mail com anexo via Blat

Luiz.

Envio de email com anexo via blat

Enviado: 29 Out 2013 09:26
por Toledo
Luiz, segue abaixo um exemplo de como usar o Blat através da DLL, sem necessidade do arquivo blat.exe.

Código: Selecionar todos

/****************************************
* 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,

Envio de email com anexo via blat

Enviado: 29 Out 2013 09:41
por luiz antonio da silva
Olá Toledo !

Obrigado pelo código, bem mais simples.

*** Estou fazendo um limpa no HD e tem várias coisas (umas acabadas outras nem tanto...rs) que gostaria de compartilhar, que sabe, pode dar idéia para alguém.

Valew.

Luiz

Envio de email com anexo via blat

Enviado: 29 Out 2013 09:44
por Toledo
Bom, neste meu código não tem nada de tela gráfica, bem simples mesmo, mas foi apenas para servir de exemplo de como usar a DLL do Blat.

Abraços,

Envio de email com anexo via blat

Enviado: 29 Out 2013 09:58
por luiz antonio da silva
Toledo me desculpe !!

A simplicidade a que me referi foi a maneira de programar, seus códigos sempre foram de extrema importancia para mim, e se meu comentário fez entender algo diferente da "simplicidade" que comentei.....desconsidere...e por favor me desculpe.

Abraço.
Luiz

Envio de email com anexo via blat

Enviado: 29 Out 2013 10:08
por Toledo
Luiz, não precisa pedir desculpas nenhuma... eu entendi certinho o que você falou, eu só tentei dizer que como meu código não tem esta parte gráfica, por isto parece ser mais simples.

Abraços,

Envio de email com anexo via blat

Enviado: 13 Nov 2013 19:11
por Softwhouse
Toledo,

Copiei o código, alterei os dados da conta de e-mail e provedor, coloquei a blat.dll 3.1.1.0 na mesma pasta e não funcionou, apresenta mensagem de que ocorreu um erro. Estou usando o Harbour 3.2.0dev (r1309241459). Será que é problema no Harbour? Compilei alguns exemplos do fórum que também não funcionaram...

Envio de email com anexo via blat

Enviado: 13 Nov 2013 21:56
por Toledo
Fernando, veja o arquivo BlatMail.log para saber qual foi o erro que ocorreu.

E se possível, crie uma conta no YAHOO e faça um teste para saber se o problema não está no seu servidor de e-mail.

Abraços,

Envio de email com anexo via blat

Enviado: 14 Nov 2013 09:41
por Softwhouse
Toledo, o problema é o provedor. Tentei com o Ibest e deu certo, Hotmail e outros não funciona de jeito nenhum. Obrigado.