enviar e-mail pelo xharbour
Moderador: Moderadores
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
Re: enviar e-mail pelo xharbour
Amiguinho
Me passe o seu email que lhe envio o meu exemplo:
É o esquema que uso com cliente e neste caso uso meu proprio site para enviar newletters de atualizacoes para os mesmos.
Eles recebem o email mas as imagens estão posicionadas em meu site.
No caso do envio de newsletter de meu sistema eu deixo algumas imagens ja guardadas em meu site, envio o conteudo HTML para o clientes mas os link estão direcionados para meu site.
Esta técnica é velha e a maioria dos site como submarino, americanas, etc, usam, pelo menos quando abro o meu Eudora sem estar conectado, vejo meus emails mas o espeço das imagens fica vazio. Desta forma não lotamos a caixa de email do cliente com imagens, etc.
Caso voce não tenha um site pode criar uma conta no Geocities ou V10 para armazenar as imagens e se for usar um programa cliente de FTP use o SmartFTP.
Me passe o seu email que lhe envio o meu exemplo:
É o esquema que uso com cliente e neste caso uso meu proprio site para enviar newletters de atualizacoes para os mesmos.
Eles recebem o email mas as imagens estão posicionadas em meu site.
No caso do envio de newsletter de meu sistema eu deixo algumas imagens ja guardadas em meu site, envio o conteudo HTML para o clientes mas os link estão direcionados para meu site.
Esta técnica é velha e a maioria dos site como submarino, americanas, etc, usam, pelo menos quando abro o meu Eudora sem estar conectado, vejo meus emails mas o espeço das imagens fica vazio. Desta forma não lotamos a caixa de email do cliente com imagens, etc.
Caso voce não tenha um site pode criar uma conta no Geocities ou V10 para armazenar as imagens e se for usar um programa cliente de FTP use o SmartFTP.
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.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
-
caminformaticaSH
- Usuário Nível 1

- Mensagens: 6
- Registrado em: 30 Mai 2008 15:49
- Localização: Brasil
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
Re: enviar e-mail pelo xharbour
Amiguinho
Ao visualizar o email recebido, veja o codigo fonte do mesmo e vera que as imagens estão posicionadas em meu site.
Isto torna o envio de muitas mensagens mais rapidas pois não ha o download da imagem em primeiro momento tornando lento o recebimento do email.
Ao visualizar o email recebido, veja o codigo fonte do mesmo e vera que as imagens estão posicionadas em meu site.
Isto torna o envio de muitas mensagens mais rapidas pois não ha o download da imagem em primeiro momento tornando lento o recebimento do email.
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.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
-
carlos_dornelas
- Usuário Nível 3

- Mensagens: 400
- Registrado em: 25 Ago 2004 21:54
-
caminformaticaSH
- Usuário Nível 1

- Mensagens: 6
- Registrado em: 30 Mai 2008 15:49
- Localização: Brasil
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
Re: enviar e-mail pelo xharbour
Amiguinho,
Enviei duas vezes, verifique se sua caixa não possue algum travador de spam ou me indique algum email IG ou HOTMAIL, beleza.
Enviei duas vezes, verifique se sua caixa não possue algum travador de spam ou me indique algum email IG ou HOTMAIL, beleza.
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.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Re: enviar e-mail pelo xharbour
Srs. usando a Hb_sendmail() pode fazer exatamente como o Rochinha disse, através de um hyperlink vc pode colocar uma imagen no corpo do email.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql
-
caminformaticaSH
- Usuário Nível 1

- Mensagens: 6
- Registrado em: 30 Mai 2008 15:49
- Localização: Brasil
Re: enviar e-mail pelo xharbour
Olá pessoal, consegui enviar e-mail utilizando fwh + xharbour, agora estou com um dilema.
Da forma que estou fazendo, fica aberta uma tela até terminar de enviar o e-mail, prendendo o cliente que tem que ficar esperando o e-mail ser enviado, ele me diz que demora em torno de 2 minutos dependendo do e-mail.
Alguém poderia me enviar um pequeno PRG da rotina HB_SENDMAIL, compilado apenas com xharbour, ou seja, em modo console. Pois em modo console irá apenas abrir a tela do DOS, deixando o sistema livre pra continuar outras tarefas, como se fora o blat(programa para envio de e-mail em DOS).
Obrigado a todos !!!
Da forma que estou fazendo, fica aberta uma tela até terminar de enviar o e-mail, prendendo o cliente que tem que ficar esperando o e-mail ser enviado, ele me diz que demora em torno de 2 minutos dependendo do e-mail.
Alguém poderia me enviar um pequeno PRG da rotina HB_SENDMAIL, compilado apenas com xharbour, ou seja, em modo console. Pois em modo console irá apenas abrir a tela do DOS, deixando o sistema livre pra continuar outras tarefas, como se fora o blat(programa para envio de e-mail em DOS).
Obrigado a todos !!!
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
Re: enviar e-mail pelo xharbour
Amiguinho
Em modo console geralmente qualquer rotina corre de forma procedural, ou seja, o passo seguinte só continua apos o termino do passo anterior.
Talvez neste caso te funcionasse uma rotina rodando em paralelo com o uso de funcao de ativação de rotinas em background.
Ao entrar na rotina de email apenas prepare o conteudo e acione uma rotina de envio no processo, assim sua rotina principal continua apenas passando pela rotina de email e deixando a mensagem a ser enviada.
Em modo console geralmente qualquer rotina corre de forma procedural, ou seja, o passo seguinte só continua apos o termino do passo anterior.
Talvez neste caso te funcionasse uma rotina rodando em paralelo com o uso de funcao de ativação de rotinas em background.
Ao entrar na rotina de email apenas prepare o conteudo e acione uma rotina de envio no processo, assim sua rotina principal continua apenas passando pela rotina de email e deixando a mensagem a ser enviada.
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.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
-
caminformaticaSH
- Usuário Nível 1

- Mensagens: 6
- Registrado em: 30 Mai 2008 15:49
- Localização: Brasil
Re: enviar e-mail pelo xharbour
Olá rochinha, mas é justamente isso que estou fazendo, estou chamando um segundo programa apenas para enviar o e-mail. Veja abaixo:
cmai_ := "\SISFRE\TMAILSH.EXE "
cpar_ := alltrim(emai_rem2) + " " + ;
alltrim(emai_rem3) + " " + ;
alltrim(emai_rem) + " " + ;
alltrim(emai_des) + " " + ;
alltrim(emai_cop1) + " " + ;
alltrim(emai_tit) + " " + ;
alltrim(anex_em1) + " " + ;
alltrim(anex_em2) + " " + ;
alltrim(emai_rems)
arq_tmp := criatmp("A", .t.)
estru := {}
aadd(estru, {"PARA_TMP","C",150,00})
aadd(estru, {"servsmtp_","C",100,00})
aadd(estru, {"servpop3_","C",100,00})
aadd(estru, {"emaireme_","C",100,00})
aadd(estru, {"emaides1_","C",100,00})
aadd(estru, {"emaicop1_","C",100,00})
aadd(estru, {"emaiassu_","C",100,00})
aadd(estru, {"emaiarq1_","C",100,00})
aadd(estru, {"emaiarq2_","C",100,00})
aadd(estru, {"emaisenh_","C",100,00})
dbcreate(arq_tmp, estru)
use &arq_tmp alias TMPMAIL shared new
select TMPMAIL
if lastrec() = 0
adireg()
endif
reglock()
replace TMPMAIL->servsmtp_ with alltrim(emai_rem2)
replace TMPMAIL->servpop3_ with alltrim(emai_rem3)
replace TMPMAIL->emaireme_ with alltrim(emai_rem)
replace TMPMAIL->emaides1_ with alltrim(emai_des)
replace TMPMAIL->emaicop1_ with alltrim(emai_cop1)
replace TMPMAIL->emaiassu_ with alltrim(emai_tit)
replace TMPMAIL->emaiarq1_ with alltrim(anex_em1)
replace TMPMAIL->emaiarq2_ with alltrim(anex_em2)
replace TMPMAIL->emaisenh_ with alltrim(emai_rems)
TMPMAIL->(DbUnlock())
TMPMAIL->(DbCommit())
close TMPMAIL
* Aqui chama o program externo feito em FWH + xharbour110 apenas para enviar o e-mail.
WinExec("&cmai_" + arq_tmp)
Então eu suponho que se eu conseguir criar o programa de enviar e-mail via console, ele irá funcionar, já que será aberto uma tela do DOS para enviar o e-mail, assim como o blat faz, deixando assim o programa feito em fivewin, liberado para outras tarefas.
cmai_ := "\SISFRE\TMAILSH.EXE "
cpar_ := alltrim(emai_rem2) + " " + ;
alltrim(emai_rem3) + " " + ;
alltrim(emai_rem) + " " + ;
alltrim(emai_des) + " " + ;
alltrim(emai_cop1) + " " + ;
alltrim(emai_tit) + " " + ;
alltrim(anex_em1) + " " + ;
alltrim(anex_em2) + " " + ;
alltrim(emai_rems)
arq_tmp := criatmp("A", .t.)
estru := {}
aadd(estru, {"PARA_TMP","C",150,00})
aadd(estru, {"servsmtp_","C",100,00})
aadd(estru, {"servpop3_","C",100,00})
aadd(estru, {"emaireme_","C",100,00})
aadd(estru, {"emaides1_","C",100,00})
aadd(estru, {"emaicop1_","C",100,00})
aadd(estru, {"emaiassu_","C",100,00})
aadd(estru, {"emaiarq1_","C",100,00})
aadd(estru, {"emaiarq2_","C",100,00})
aadd(estru, {"emaisenh_","C",100,00})
dbcreate(arq_tmp, estru)
use &arq_tmp alias TMPMAIL shared new
select TMPMAIL
if lastrec() = 0
adireg()
endif
reglock()
replace TMPMAIL->servsmtp_ with alltrim(emai_rem2)
replace TMPMAIL->servpop3_ with alltrim(emai_rem3)
replace TMPMAIL->emaireme_ with alltrim(emai_rem)
replace TMPMAIL->emaides1_ with alltrim(emai_des)
replace TMPMAIL->emaicop1_ with alltrim(emai_cop1)
replace TMPMAIL->emaiassu_ with alltrim(emai_tit)
replace TMPMAIL->emaiarq1_ with alltrim(anex_em1)
replace TMPMAIL->emaiarq2_ with alltrim(anex_em2)
replace TMPMAIL->emaisenh_ with alltrim(emai_rems)
TMPMAIL->(DbUnlock())
TMPMAIL->(DbCommit())
close TMPMAIL
* Aqui chama o program externo feito em FWH + xharbour110 apenas para enviar o e-mail.
WinExec("&cmai_" + arq_tmp)
Então eu suponho que se eu conseguir criar o programa de enviar e-mail via console, ele irá funcionar, já que será aberto uma tela do DOS para enviar o e-mail, assim como o blat faz, deixando assim o programa feito em fivewin, liberado para outras tarefas.
-
enfosoft
- Usuário Nível 1

- Mensagens: 25
- Registrado em: 17 Mai 2007 08:15
- Localização: Rio Grande do sul
Re: enviar e-mail pelo xharbour
Eu uso sendmail( fonte nesse topico) do xharbour para enviar email. Funciona muito bem, mas estou comproblemas com servidores que requerem conexao segura. SSL. Alguem ja teve esse problema? Como resolver? Somente configuracao?
Desde Ja agradeco a ajuda.
Desde Ja agradeco a ajuda.
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
Re: enviar e-mail pelo xharbour
Amiguinhos
Eu uso o Blat.EXE a muito tempo e sempre que posso atualizo o mesmo.
Não relatei problemas de envio mas tenho pra mim que o Blat tem recursos para sanar estes problemas.
Para o uso da função WinEXEC eu acrescento um parametro WinEXEC( ..., 0 ) ou WinEXEC( ..., 7 ) pois eles não devem prender o aplicativo e nem mesmo apresentar a tela do console.
No caso dos servidores é praxe logar no servidor de envio com senha e username da mesma para permitir a passagem por estas seguranças. Então, ao enviar um email é necessário passar o Username completo(email de quem envia), Password junto com o SMTP(para ser autenticado) e logo em seguida o email destino.
Para quem quizer analisar este codigo e tirar ideias e conclusões esteja a vontade pois usei muitas das ferramentas existentes na net:
Apesar de usar este codigo com Fivewin ele pode ser portado para o Clipper, xHarbour e outras GUIs com pequenas modificações pois se trata de um código que faz uso de aplicativo externo, criando o script necessário para sua execução.
Eu uso o Blat.EXE a muito tempo e sempre que posso atualizo o mesmo.
Não relatei problemas de envio mas tenho pra mim que o Blat tem recursos para sanar estes problemas.
Para o uso da função WinEXEC eu acrescento um parametro WinEXEC( ..., 0 ) ou WinEXEC( ..., 7 ) pois eles não devem prender o aplicativo e nem mesmo apresentar a tela do console.
No caso dos servidores é praxe logar no servidor de envio com senha e username da mesma para permitir a passagem por estas seguranças. Então, ao enviar um email é necessário passar o Username completo(email de quem envia), Password junto com o SMTP(para ser autenticado) e logo em seguida o email destino.
Para quem quizer analisar este codigo e tirar ideias e conclusões esteja a vontade pois usei muitas das ferramentas existentes na net:
Código: Selecionar todos
/*
*
* Arquivo...: nfwhmail.prg
* Autor.....: Varios/Desconhecidos
* Adaptacao.: Jose Carlos da Rocha
* E-mail....: irochinha@itelefonica.com.br
* Site......: www.5volution.com
* Versao....: 1.0, 05/Ago/2006
* Objetivo..: Oferecer suporte para envio e recebimento de email
*
*/
#include "fivewin.ch"
#Include "dll.ch"
// CONSTANT Declarations
#define MAPI_ORIG 0
#define MAPI_TO 1
#define MAPI_CC 2
#define MAPI_BCC 3
// FLAG Declarations
#define MAPI_LOGON_UI 1 // &H1
#define MAPI_NEW_SESSION 2 // &H2
#define MAPI_DIALOG 8 // &H8
#define MAPI_UNREAD_ONLY 32 // &H20
#define MAPI_ENVELOPE_ONLY 64 // &H40
#define MAPI_PEEK 128 // &H80
#define MAPI_GUARANTEE_FIFO 256 // &H100
#define MAPI_BODY_AS_FILE 512 // &H200
#define MAPI_AB_NOMODIFY 1024 // &H400
#define MAPI_SUPPRESS_ATTACH 2048 // &H800
#define MAPI_FORCE_DOWNLOAD 4096 // &H1000
#define MAPI_OLE 1 // &H1
#define MAPI_OLE_STATIC 2 // &H2
/*
*ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
*³ ± FUNCAO: Usa o servico MAPI do Windows para interfacear com o Outlook ± ³
*ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
*/
function MapiSend( cbody ,;
cserver ,;
cto ,;
cf ,;
csubject ,;
cu ,;
cpw ,;
cattach )
aFiles := {}
aOrigin := {}
aRecipients := {}
cMsgType := "L"
dDate := date()
cTime := Time()
cConversationID := "ID"
lReceipt := .t.
lInteractive := .f.
aadd( aOrigin, cu )
aadd( aRecipients, cto )
aadd( aFiles, cattach )
nRetCode := MAPILogon( 0, cServer, cpw, MAPI_LOGON_UI, 1 )
if nRetCode != -1
nRetCode := MAPISendMail( cSubject, cBody, "L",;
DToS( dDate ) + " " + cTime,;
cConversationID, lReceipt, lInteractive,;
aOrigin, aRecipients, aFiles )
//? nRetCode
else
Mensagem( "Erro ao inicializar o servico de e-mail" )
endif
MAPILogoff()
return .t.
/*
*ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
*³ ± FUNCAO: Faz uso do PySendMail para enviar emails diretamente pela internet ± ³
*ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
*/
function PySendMail( cBody ,;
cSMTPServer ,;
cTo ,;
cFrom ,;
cSubject ,;
cUser ,;
cPassWord ,;
cAttach )
oPySendMail:=TOleAuto():New( "Py.SendMail" )
oPySendMail:SMTPServer := cSMTPServer
oPySendMail:To := cTo
oPySendMail:From := cFrom
oPySendMail:User := cUser
oPySendMail:Password := cPassWord
oPySendMail:Subject := cSubject
oPySendMail:Body := cBody
//oPySendMail:PureText := .t.
if .not. empty( cAttach )
oPySendMail:AttachFile( cAttach )
endif
//oPySendMail:InsertImage:= ""
retorno := oPySendMail:Send()
if upper(retorno) <> "OK"
Mensagem( "Erro: " + retorno )
return .f.
endif
return .t.
/*
*ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
*³ ± FUNCAO: Faz uso do BLAT para enviar emails diretamente pela internet ± ³
*ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
*/
function blat( cbody ,;
cserver ,;
cto ,;
cf ,;
csubject ,;
cu ,;
cpw ,;
cattach )
BlatCMD := [ blat.txt] + ;
[ -server ] + alltrim(cserver) + ;
[ -to ] + alltrim(cto) + ;
[ -f ] + alltrim(cf) + ;
[ -mailfrom ] + alltrim(cf) + ;
[ -subject "] + alltrim(csubject) + ["] + ;
[ -r ] + ;
[ -u ] + alltrim(cu) + ;
[ -pw ] + alltrim(cpw) + ;
[ -log "email.log" -debug ] + ;
iif( empty( cAttach ),[],[ -attach "] + alltrim(cattach) + ["])
cMacro="BLAT.EXE " + BlatCMD
fErase( "email.log" )
cBody := FormHtml( cSubject, cBody )
memowrit( "blat.txt", cbody )
//memowrit( "blat.bat", cMacro )
WinExec( cMacro, 0 )
if file( "blat.log" )
BlatLOG := memoread( "email.log" )
if "ERROR" $ Upper(BlatLOG)
Mensagem( "Erro: arquivo de BLAT.LOG foi criado" )
return .f.
endif
endif
RETURN .T.
/*
*ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
*³ ± FUNCAO: Faz uso do MAPISEND p enviar email diretamente pela internet ± ³
*ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
*/
function MapiSend2( cbody ,;
cserver ,;
cto ,;
cf ,;
csubject ,;
cu ,;
cpw ,;
cattach )
MapiCMD := [ -u "] + alltrim(cu) + ["] + ;
[ -p "] + alltrim(cpw) + ["] + ;
[ -r "] + alltrim(cto) + ["] + ;
[ -s "] + alltrim(csubject) + ["] + ;
[ -m "] + alltrim(cbody) + ["] + ;
iif( empty( cAttach ),[],[ -f "] + alltrim(cattach) + ["]) + ;
[ -l email.log ]
cMacro := "MAPISEND.EXE " + MapiCMD
memowrit( "mapisend.bat", cMacro )
errfile := "MapiSend.tmp"
errhandle := fcreate(errfile) // Cria o arquivo de controle
errhandle := FOPEN(errfile,1) // Abre travando o arquivo de controle
fErase( "email.log" )
WinExec( cMacro, 0 )
SysWait(2.5)
fclose(errfile) // Fecha o arquivo de controle
ferase(errfile) // Elimina o arquivo de controle
if file( "mapisend.log" )
MapiLOG := memoread( "email.log" )
if "ERROR" $ Upper(MapiLOG)
Mensagem( "Erro: arquivo de MAPISEND.LOG foi criado" )
return .f.
endif
endif
RETURN .T.
/*
*ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
*³ ± FUNCAO: Faz uso do CONVERTDOC para transformar arquivos .RTF em HTML ± ³
*ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
*/
function ConvertDOC( cRTFFile, cHTMLFile )
CnvtCMD := [ /S ] + alltrim(cRTFFile) + ;
[ /T ] + alltrim(cHTMLFile) + ;
[ /F5 /C4 /M2 ]
cMacro="convertdoc.exe " + CnvtCMD
WinExec( cMacro, 0 )
RETURN .T.
/*
*ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
*³ ± FUNCAO: Faz uso do GETMAIL para receber emails diretamente pela internet ± ³
*ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
*/
function GetMail( cuser ,;
cpass ,;
cserver )
GetMCMD := " -u " + alltrim(cuser) + ;
" -pw " + alltrim(cpass) + ;
" -s " + alltrim(cserver)
cMacro="GETMAIL.EXE" + GetMCMD
memowrit( "get.bat", cMacro )
? cMacro
MsgRun( "Recebendo de "+LOWER(cServer)+"..." )
WinExec( "get.bat", 0 )
RETURN .T.
/*
*ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
*³ ± FUNCAO: Faz uso do BLAT para enviar emails diretamente pela internet ± ³
*ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
*/
Function SendIELink( oIEWnd, cLink, lVisivel, lCapture, lToolBar, lStatusBar, lMenuBar, lQuit )
local oIE
Default lVisivel:=.f., lCapture:=.f., lQuit:=.f.,;
lToolBar:=.f., lStatusBar:=.f., lMenuBar:=.f.
oIE:=TOleAuto():New( "InternetExplorer.Application" )
oIE:Visible := lVisivel
oIE:ToolBar := lToolBar
oIE:StatusBar := lStatusBar
oIE:MenuBar := lMenuBar
oIE:Top := 060
oIE:Left := 005
oIE:Height := 600
oIE:Width := 800
oIE:Navigate( cLink )
if lQuit
SysWait(.60)
oIE:Quit()
endif
oIE:End()
if lCapture
FindIE(oIEWnd)
endif
SysRefresh()
return nil
/*
*ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
*³ ± FUNCAO: ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± ³
*ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
*/
Function SendSMSClaro( cDestDDD, cDestTEL, cMensagem, cOrigem, cOrigDDD, cOrigTEL, cLetras )
local hE, cVar1, cVar2, cVar3, cVar4, cVar5, cLink
cVar1 := "http://www2.claro.com.br/torpedoweb/popup_senderJava.asp?\ "
cVar2 := "ddd_para="+alltrim(cDestDDD)
cVar3 := "&telefone_para="+alltrim(cDestTEL)
cVar4 := "&nome_de="+LigaString(alltrim(cOrigem))
cVar5 := "&ddd_de="+alltrim(cOrigDDD)
cVar6 := "&\ telefone_de="+alltrim(cOrigTEL)
cVar7 := "&msg="+LigaString(alltrim(cMensagem))
cVar8 := "&caract="+strzero(cLetras,3)
cLink := cVar1+cVar2+cVar3+cVar4+cVar5+cVar6+cVar7+cVar8
hE := CreateOleObject("InternetExplorer.Application")
OLESetProperty(hE,"Visible", .T.)
OLESetProperty(hE,"ToolBar", .T.)
OLESetProperty(hE,"StatusBar", .T.)
OLESetProperty(hE,"MenuBar", .T.)
OLEInvoke(hE,"Navigate",cLink)
SysRefresh()
return nil
Function LigaString( cFrase )
do while (AT( " ", cFrase ) > 0)
cFrase := StrTran( cFrase, " ", "+" )
enddo
return cFrase
/*
*ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
*³ ± FUNCAO: Tentar fazer envio de SMS usando o MS SMS Sender e um celular± ³
*ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
*/
function MSSMSSend( cTelefone , cMensagem )
SmsCMD := [ /p:] + cTelefone + ;
[ -m:] + cMensagem + ;
[ /l ]
cMacro="smssend " + SmsCMD
MsgRun( "Enviando SMS..." )
memowrit( "sms.bat", cMacro )
WinExec( "sms.bat", 7 )
if file( "sms.log" )
MapiLOG := memoread( "sms.log" )
if "ERROR" $ Upper(MapiLOG)
MsgStop( MapiLOG )
endif
fErase( "sms.log" )
endif
RETURN .T.
/*
*ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
*³ ± FUNCAO: ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± ³
*ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
*/
function CheckPop3( oMsgMail, cPOP3Host, cSender, cReplyTo, cMsg, cUser, cPass, bDone, cSMTPHost )
LOCAL oTSmtp, oPop, Value:=0
DEFAULT cSMTPHost := 'smtp.itelefonica.com.br' ,;
cPOP3Host := 'pop3.itelefonica.com.br' ,;
cSender := 'irochinha@itelefonica.com.br',;
cReplyTo := 'konectiva@konectiva.com.br',;
cMsg := 'teste com fivewin' ,;
cUser := 'irochinha' ,;
cPass := '200196' ,;
bDone := .t.
if IsInternet( "www.ig.com.br" ) // InternetSt(@value,0)
WsaStartUp()
cIp := GETHOSTBYNAME( cPOP3Host )
WsaCleanUp()
oTSmtp := TSmtp():New( cIP )
oTSmtp := TSmtp():New( cIP )
oPop := TPOP3():New( cIP, Nil, cUser, cPass )
oPop:bConnecting := {|| MsgRun( "Conectando a " + cPOP3Host + " (" + oPop:cIPServer + ") e esperando resposta..." ) }
oPop:bConnected := {|| MsgRun( "Checando por mensagens de email..." ) }
oPop:bDone := {|| ReadEmails( oPop, oMsgMail, cPOP3Host ) }
oPop:lDelMsgs := .f.
//oPop:oSocket:lDebug := .T. // uncomment to create log file
//oPop:oSocket:cLogFile := "pop3.log"
oPop:GetMail( .T. ) // just check if we have mail waiting...
oWnd:oMsgBar:InsItem( oMsgMail, 2 )
//msgstop( 'teste' ) // oMsgMail )
oTSmtp:end()
endif
Return Nil
function ReadEmails( oInMail, oMsgMail, cPOP3Host )
local n,oWndINet
if Len( oInMail:aMsgs ) > 0
MsgInfo( "Total emails: " + Str( Len( oInMail:aMsgs ) ) )
//for n = 1 to Len( oInMail:aMsgs )
// memowrit( "pop3"+strzero(n,3)+".msg", oInMail:aMsgs[ n ] )
//next
Mensagem("Existem "+alltrim(Str( Len( oInMail:aMsgs ) ))+" novas mensagens em sua caixa de email." )
user_emails := Len( oInMail:aMsgs )
//oMsgItemMail:cToolTip := "Existem "+alltrim(Str( Len( oInMail:aMsgs ) ))+" novas mensagens em sua caixa de email."
//oDSKlbx3:Refresh()
else
//oMsgItemMail:cToolTip := "Nenhuma mensagem em " + cPOP3Host
oWnd:SetMsg( "Nenhuma mensagem em " + cPOP3Host )
endif
return nil
function CheckEmails( oInMail )
contator := ADIR( "*.msg" )
if Contator != 0
declare txt_nomes[ contator ]
adir( "*.msg", txt_nomes )
for Contator := 1 TO len( txt_nomes )
SaveEmails( oInMail )
ferase( txt_nomes[contador] )
next
endif
SysRefresh()
return .t.
function SaveEmails( oInMail )
local n
if !file( "EMAIL.DBF" )
ESTRU_DBF := { ;
{ "DATA" , "D", 8, 0 } , ;
{ "HORA" , "C", 8, 0 } , ;
{ "PARA" , "C", 30, 0 } , ;
{ "DESTINO" , "C", 30, 0 } , ;
{ "DE" , "C", 30, 0 } , ;
{ "ORIGEM" , "C", 30, 0 } , ;
{ "ANEXO" , "C", 20, 0 } , ;
{ "ASSUNTO" , "C", 30, 0 } , ;
{ "MENSAGEM", "M", 10, 0 } , ;
{ "STATUS" , "C", 20, 0 } }
dbCreate( "EMAIL", ESTRU_DBF )
else
use EMAIL new shared
endif
for n = 1 to Len( oInMail:aMsgs )
oWnd:SetMsg( "Lendo "+str(n,2)+" de "+str(Len( oInMail:aMsgs )) )
sele email
append blank
email->assunto := strtran( 'Subject:','',;
substr( oInMail:aMsgs[ n ], ;
at('Subject: ',oInMail:aMsgs[ n ]) ) )
email->de := strtran( 'From:','',;
substr( oInMail:aMsgs[ n ], ;
at('From: ' ,oInMail:aMsgs[ n ]) ) )
email->para := strtran( 'To:','',;
substr( oInMail:aMsgs[ n ], ;
at('To: ' ,oInMail:aMsgs[ n ]) ) )
email->mensagem := oInMail:aMsgs[ n ]
commit
next
return nil
/*
*ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
*³ ± FUNCAO: ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± ³
*ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
*/
function SendMail2( cSMTPHost, cSender, aReplyTo, cMsg, cSubject, cUser, cPass, bDone )
LOCAL oOutMail, cIp
DEFAULT cSMTPHost := 'smtp.itelefonica.com.br' ,;
cSender := 'irochinha@itelefonica.com.br' ,;
aReplyTo := { 'konectiva@konectiva.com.br' } ,;
cMsg := 'teste com fivewin' ,;
cSubject := 'Teste de envio de mensagem via TSmtp',;
aAttach := { "c:\autoexec.bat", "c:\config.sys" },;
cUser := 'irochinha' ,;
cPass := '200196' ,;
bDone := .t.
WsaStartUp()
cIp := GETHOSTBYNAME( cSMTPHost )
WsaCleanUp()
oOutMail = TSmtp():New( cIp ) // mail server IP
oOutMail:bConnecting = { || oWnd:SetMsg( "Conectando a "+cSender+"..." ) }
oOutMail:bConnected = { || oWnd:SetMsg( "Conectado" ) }
oOutMail:bDone = { || oWnd:SetMsg( "Mensagem enviada com sucesso" ) }
oOutMail:SendMail( cSender ,; // From
aReplyTo,; // To
cMsg ,; // Msg Text
cSubject,; // Subject
aAttach ) // attached files
return nil
/*
*ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
*³ ± FUNCAO: ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± ³
*ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
*/
Function SendMail( cSMTPHost, cSender, cTo, cReplyTo, cSubject, cMsg, ;
lReceipt, lAuth, cUser, cPass, lPop3, cPOP3Host, cAttach, cSilent )
LOCAL oInit
DEFAULT cSMTPHost := 'smtp.itelefonica.com.br' ,;
cPOP3Host := 'pop3.itelefonica.com.br' ,;
cTo := 'jscrocha@terra.com.br' ,;
cSender := 'irochinha@itelefonica.com.br',;
cReplyTo := 'jscrocha@terra.com.br' ,;
cAttach := 'c:\autoexec.bat' ,;
lReceipt := .t. ,;
lAuth := .t. ,;
lPop3 := .t. ,;
cSilent := 'S' ,;
cSubject := '** teste com fivewin **' ,;
cMsg := 'teste com fivewin' ,;
cUser := 'irochinha' ,;
cPass := '200196'
if IsInternet( "www.ig.com.br" ) // InternetSt(@value,0)
oInit := TSmtp():New( cSMTPHost )
oMail := TSmtp():New( cSMTPHost, , lAuth, cUser, cPass )
//oMail:cReplyTo := cReplyTo
oMail:nGMT := 8 // 8 = Pacific Standard Time (GMT -08:00) - Adjust this to your own Time Zone!
oMail:nDelay := 1
*oMail:lTxtAsAttach := .F. // uncomment to force txt, log and htm files as inline as opposed to attachement
oMail:oSocket:lDebug := .T. // uncomment to create log file
oMail:oSocket:cLogFile := "smtp.log"
if cSilent = 'N'
MsgRun( "Conectando a " + cSMTPHost + " (" + oMail:cIPServer + ") a aguardando resposta..." )
MsgRun( "Conectado e enviando email e anexos..." )
endif
oMail:SendMail( cSender, ; // from/de
{ cTo }, ; // to/para (arreglo) - I use cSender here also because it's an "autotest". Actually you would type a different address here
cMsg,; // Body/Mensaje
cSubject,; // Subject/Asunto
{ cAttach }, ; // Array of filenames to attach/Arreglo de nombres de archivos a agregar
{ }, ; // aCC
{ cSender }, ; // aBCC
lReceipt, ; // Return Receipt/acuse de recibo
cMsg ) // msg in HTML format/mensaje en HTML
oInit:end()
ELSE
Mensagem( "Desconectado da internet. Mensagem nao pode ser enviada." )
ENDIF
Return Nil
/*function EmailDeliver( cPOP3Host, cSender, cTo, cMsg, cAttach, ;
cReplyTo, cUser, cPass, cSMTPHost )
LOCAL oTSmtp, oPop, Value:=0
DEFAULT cSMTPHost := 'smtp.itelefonica.com.br' ,;
cPOP3Host := 'pop3.itelefonica.com.br' ,;
cSender := 'irochinha@itelefonica.com.br',;
cTo := 'irochinha@itelefonica.com.br',;
cReplyTo := 'konectiva@konectiva.com.br' ,;
cMsg := 'teste com Fivewin/Harbour' ,;
cAttach := "mail.prg" ,;
cUser := 'irochinha' ,;
cPass := '200196'
oTSmtp := tSendMail():New()
oTSmtp:csmtp := cSMTPHost
oTSmtp:cfrom := cSender
oTSmtp:cto := cTo
oTSmtp:ccc := ''
oTSmtp:csubject := "Teste com Harbour TSndMail()"
oTSmtp:cmsgbody := cMsg
oTSmtp:cbinfile := cAttach
oTSmtp:ngmt := +7
oTSmtp:cpriority := 3
oTSmtp:ccomment := "This is a Test of Harbour TSndMail()"
oTSmtp:send()
RETURN oTSmtp:nError()*/
/* *************************************************************************
@ 2.5,25.5 LISTBOX oLbx FIELDS ;
aHBitmaps[ iif( DELETED(),3,1) ],;
DTOC( EMAIL->DATA ), EMAIL->HORA, EMAIL->PARA, EMAIL->DESTINO, EMAIL->DE, EMAIL->ORIGEM, EMAIL->ANEXO, EMAIL->ASSUNTO, EMAIL->MENSAGEM, EMAIL->STATUS ;
ON LEFT DBLCLICK (CADASTRA( oLbx, "MOSTRA" ),oLbx:GoTop(), oLbx:Refresh()) ;
HEADERS "ok",;
"DATA", "HORA", "PARA", "DESTINO", "DE", "ORIGEM", "ANEXO", "ASSUNTO", "MENSAGEM", "STATUS" ;
FIELDSIZES 16,;
FieldTam( "DATA" ),;
FieldTam( "HORA" ),;
FieldTam( "PARA" ),;
FieldTam( "DESTINO" ),;
FieldTam( "DE" ),;
FieldTam( "ORIGEM" ),;
FieldTam( "ANEXO" ),;
FieldTam( "ASSUNTO" ),;
FieldTam( "MENSAGEM" ),;
FieldTam( "STATUS" ) ;
ALIAS "EMAIL" ;
FONT oFnt ;
OF oWnd2
************************************************************************* */
/*
*ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
*³ ± FUNCAO: ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± ³
*ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
*/
function _SendMail( cHost, cSender, cReplyTo, cSubject, cMsg, lReceipt, lAuth, cUser, cPass, lPop3, cPOP3Host )
LOCAL oInit
oInit := TSmtp():New( cHost )
oMail := TSmtp():New( cHost, , lAuth, cUser, cPass ) // [jlalin], IBTC
oMail:cReplyTo := cReplyTo
oMail:nGMT := 8 // 8 = Pacific Standard Time (GMT -08:00) - Adjust this to your own Time Zone!
oMail:nDelay := 1
*oMail:lTxtAsAttach := .F. // uncomment to force txt, log and htm files as inline as opposed to attachement
oMail:oSocket:lDebug := .T. // uncomment to create log file
oMail:oSocket:cLogFile := "smtp.log"
oMail:bConnecting := {|| oWnd:SetMsg( "Conectando a " + cHost + " (" + oMail:cIPServer + ") a aguardando resposta..." ) }
oMail:bConnected := {|| oWnd:SetMsg( "Conectado e enviando email e anexos..." ) }
oMail:SendMail( ;
'jscrocha@terra.com.br', ; // from/de
{ 'jscrocha@terra.com.br' }, ; // to/para (arreglo) - I use cSender here also because it's an "autotest". Actually you would type a different address here
cMsg,; // Body/Mensaje
cSubject,; // Subject/Asunto
{ "smtptest.prg" }, ; // Array of filenames to attach/Arreglo de nombres de archivos a agregar
{ }, ; // aCC
{ cSender }, ; // aBCC
lReceipt, ; // Return Receipt/acuse de recibo
cMsg ) // msg in HTML format/mensaje en HTML
oInit:end()
Return .T.
Function FormHtml( cSubject, cBody )
Local cOpen := "", cClose := ""
cHTML := ;
'<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"' + CRLF + ;
' "http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd">' + CRLF + ;
'<html>' + CRLF + ;
'<head>' + CRLF + ;
' <title>' + cSubject + '</title>' + CRLF + ;
' <meta http-equiv="Content-Type"' + CRLF + ;
' content="text/html; charset=iso-8859-1">' + CRLF + ;
'</head>' + CRLF + ;
'<body>' + CRLF + ;
cBody + CRLF + ;
'</body>' + CRLF + ;
'</html>'
Return cOpen + cHTML + cClose
**************************************************************************
DLL32 FUNCTION MAPILogon( UIParam AS _INT, ;
sUser AS STRING, ;
Password AS STRING, ;
Flags AS _INT, ;
Reserved AS _INT, ;
Session AS _INT ) AS LONG PASCAL;
FROM "MAPILogonN" LIB "Mapi32.dll"
DLL32 FUNCTION MAPISendDocuments( UIParam AS _INT, ;
DelimStr AS STRING, ;
FilePaths AS STRING, ;
FileNames AS STRING, ;
Reserved AS _INT ) AS LONG PASCAL;
FROM "MAPISendDocuments" LIB "Mapi32.dll"
DLL32 FUNCTION RTF2HTML( source AS STRING, ;
destination AS STRING, ;
options AS _INT, ;
bgcolor AS STRING, ;
title AS STRING, ;
dpi AS _INT ) AS LONG PASCAL;
FROM "EXRTF2WEB" LIB "IRun.dll"
/*
Declare Function MAPILogoN Lib "MAPI.DLL" (ByVal UIParam&, ByVal sUser$, ByVal Password$, ByVal Flags&, ByVal Reserved&, Session&) As Long
Declare Function MAPILogoff Lib "MAPI.DLL" (ByVal Session&, ByVal UIParam&, ByVal Flags&, ByVal Reserved&) As Long
Declare Function MAPIFindNext Lib "MAPI.DLL" Alias "BMAPIFindNext" (ByVal Session&, ByVal UIParam&, MsgType$, SeedMsgID$, ByVal Flag&, ByVal Reserved&, MsgId$) As Long
Declare Function BMAPIReadMail Lib "MAPI.DLL" (lMsg&, nRecipients&, nFiles&, ByVal Session&, ByVal UIParam&, MessageID$, ByVal Flag&, ByVal Reserved&) As Long
Declare Function BMAPIGetReadMail Lib "MAPI.DLL" (ByVal lMsg&, Message As MAPIMessage, Recip As mapirecip, File As mapifile, Originator As mapirecip) As Long
Declare Function MAPISendDocuments Lib "MAPI.DLL" (ByVal UIParam&, ByVal DelimStr$, ByVal FilePaths$, ByVal FileNames$, ByVal Reserved&) As Long
Declare Function MAPISaveMail Lib "MAPI.DLL" Alias "BMAPISaveMail" (ByVal Session&, ByVal UIParam&, Message As MAPIMessage, Recipient As mapirecip, File As mapifile, ByVal Flags&, ByVal Reserved&, MsgId$) As Long
Declare Function mapideletemail Lib "MAPI.DLL" (ByVal Session&, ByVal UIParam&, ByVal MsgId$, ByVal Flags&, ByVal Reserved&) As Long
Declare Function MAPISendMail Lib "MAPI.DLL" Alias "BMAPISendMail" (ByVal Session&, ByVal UIParam&, Message As MAPIMessage, Recipient As mapirecip, File As mapifile, ByVal Flags&, ByVal Reserved&) As Long
Declare Function BMAPIAddress Lib "MAPI.DLL" (lInfo&, ByVal Session&, ByVal UIParam&, Caption$, ByVal nEditFields&, Label$, nRecipients&, Recip As mapirecip, ByVal Flags&, ByVal Reserved&) As Long
Declare Function BMAPIGetAddress Lib "MAPI.DLL" (ByVal lInfo&, ByVal nRecipients&, Recipients As mapirecip) As Long
Declare Function MapiDetails Lib "MAPI.DLL" Alias "BMAPIDetails" (ByVal Session&, ByVal UIParam&, Recipient As mapirecip, ByVal Flags&, ByVal Reserved&) As Long
Declare Function MapiResolveName Lib "MAPI.DLL" Alias "BMAPIResolveName" (ByVal Session&, ByVal UIParam&, ByVal UserName$, ByVal Flags&, ByVal Reserved&, Recipient As mapirecip) As Long
*/
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.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Re: enviar e-mail pelo xharbour
Quais os parametros que esta usando na sendmail() ?enfosoft escreveu:Eu uso sendmail( fonte nesse topico) do xharbour para enviar email. Funciona muito bem, mas estou comproblemas com servidores que requerem conexao segura. SSL. Alguem ja teve esse problema? Como resolver? Somente configuracao?
Desde Ja agradeco a ajuda.
já habilitou a autenticação para smtp ? e qual porta usa de saida esse servidor usa ?
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql
-
enfosoft
- Usuário Nível 1

- Mensagens: 25
- Registrado em: 17 Mai 2007 08:15
- Localização: Rio Grande do sul
Re: enviar e-mail pelo xharbour
Bom dia Leonardo.
Com base nas configuracoes para o outlook a porta para SMTP é 465. Como faco para habilitar a autenticação para smtp ?
Abaixo segue um exemplo de como estou tentando fazer o envio de email.
Obrigado pela ajuda
Enio
Com base nas configuracoes para o outlook a porta para SMTP é 465. Como faco para habilitar a autenticação para smtp ?
Abaixo segue um exemplo de como estou tentando fazer o envio de email.
Código: Selecionar todos
local cSubject := "Assunto do Email"
local aTo := { "enio@datachamp.com.br" }
local cServerIp := "smtp.ibest.com.br"
Local cFrom := "eniofoppa@ibest.com.br"
Local cUser := "eniofoppa@ibest.com.br"
local cMsg := " Mensagem do Email "
cPass :="senha" // informo a senha
IF hb_SendMail(cServerIP,465,cFrom,aTo, , , cMsg,cSubject, , cUser, cPass, 'pop.ibest.com.br' ,3, .F. , .t. ,.T. , .f. )=.T.
else
? "Não foi possivel enviar o EMAIL"
Endif
Enio
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Re: enviar e-mail pelo xharbour
No ultimo parametro do exemplo que vc postou coloque como .T. (TRUE)
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql