Não sei se esta solução já foi apresentada aqui no forum mas vai ai a minha dica.
Os programas são muito pequenos e tem funcionamento muito simples.
GetMail
Baixa as mensagens uma a uma em arquivos TeXTo e desta forma bastaria analisar o código e interpretar a mensagem podendo ser apresentado dentro de campos memo.
Cliquem neste link e baixem-no.
A sintaxe é apresentada somente digitando no prompt do DOS a palavra GETMAIL
Vejam:
GETMAIL -u usuario@provedor.com.br -pw senha -s pop3.provedor.com.br
Blat
Talvez o mais conhecido de todos possui caracteristicas de suportar anexos e agora pode autenticar as mensagens. Peguem neste link.
Sintaxe:
BLAT -body "Corpo da mensagem" -server smtp.ig.com.br
-to toledo@pctoledo.com.br -f jscrocha@terra.com.br
-subject "Assunto" -u jscrocha -pw senha -attach c:\teste.txt
SendMail
Achei o mesmo muito bom e esta contido em um executavel de 32k. Contem os recursos de anexos e autenticação. Peguem neste link.
Sintaxe:
SendMail /smtpserver smtp.itelefonica.com.br
/from jscrocha@terra.com.br
/subject Teste com sendmail
/body Corpo da mensagem
/smtpport 25
/attachment c:\teste.txt
/user irochinha
/password senha
Os comandos devem estar em somente uma linha.
mapisend
mapisend -u "<profile>" -p <anything> -r <recipient> -s "<subject>" -t <text file containing the message>
e.g. mapisend -u "john savill" -p anything -r john@savilltech.com -s "Test message" -t c:\message\mail4.txt
-u Nome de quem envia
-p Senha da conta de email
-i Pede senha e usuario em prompt
-r Email Recipiente(de quem vai receber a memsagem)
-c Email de copia
-s Assunto
-m Conteudo do email
-t Texto externo anexo ao corpo da mensagem
-f Arquivo anexo externo
-v Gera resumo sobre a operação
Baixe deste link. Cortesia de Dudu_xBase.
Com o codigo exemplo exemplificado mais a frente será fácil implementar este utilitario ao codigo e usar em seus aplicativos.
Py.SendMail
Trata-se de um modulo COM(component Object Module) para ser acessado por linguagens que possuam este recurso, como Harbour e xHarbour, mas com a minha dica o Clipper puro poderá fazer uso do mesmo.
Baixe deste link e instale-o. Vale lembrar que tem exemplo em Harbour para acessar esta DLL via OLE. E alem de enviar ainda autentica.
O exemplo esta logo abaixo.
Pensando em utiliza-los em meus sistemas preparei um teste através de um pequeno aplicativo em Fivewin que pode ser entendido e re-escrito em Clipper DOS.
Codigo completo:
// Testing FiveWin new Internet Outgoing mail (SMTP protocol) Class
#include "FiveWin.ch"
static oWnd
//----------------------------------------------------------------------------//
function eudora()
local oBar
DEFINE WINDOW oWnd TITLE "Gerenciador de E-Mail"
DEFINE BUTTONBAR oBar _3D OF oWnd
DEFINE BUTTON OF oBar ;
ACTION Blat( "Este e o corpo da mensagem",;
"smtp.itelefonica.com.br",;
"jscrocha@terra.com.br",;
"irochinha@itelefonica.com.br",;
"Greetings from Joe!",;
"Usuario",;
"Senha",;
"c:\drvgames.txt" ) TOOLTIP "Enviar Mail"
DEFINE BUTTON OF oBar ;
ACTION GetMail( "usuario",;
"Senha",;
"pop.sao.terra.com.br" ) TOOLTIP "Receber Mail"
DEFINE BUTTON OF oBar ;
ACTION SendMail( "smtp.itelefonica.com.br",;
"jscrocha@terra.com.br",;
"irochinha@itelefonica.com.br",;
"SendMail teste" ,;
"Este foi um teste com SendMail" ,;
25 ,;
"c:\drvgames.txt" ,;
"usuario" ,;
"Senha" )
SET MESSAGE OF oWnd TO "SoftClever" NOINSET DATE TIME KEYBOARD
ACTIVATE WINDOW oWnd
return nil
//----------------------------------------------------------------------------//
function blat( cbody ,;
cserver ,;
cto ,;
cf ,;
csubject ,;
cu ,;
cpw ,;
cattach )
BlatCMD := [ -body "] + alltrim(cbody) + ["] + ;
[ -server ] + alltrim(cserver) + ;
[ -to ] + alltrim(cto) + ;
[ -f ] + alltrim(cf) + ;
[ -subject "] + alltrim(csubject) + ["] + ;
[ -u ] + alltrim(cu) + ;
[ -pw ] + alltrim(cpw) + ;
[ -attach ] + alltrim(cattach)
cMacro="BLAT.EXE" + BlatCMD
memowrit( "put.bat", cMacro )
? cMacro
MsgRun( "Enviando a "+LOWER(cServer)+"..." )
WinExec( "put.bat", 7 )
RETURN .T.
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", 7 )
RETURN .T.
function SendMail( cSmtpServer ,;
cTo ,;
cFrom ,;
cSubject ,;
cBody ,;
nSmtpPort ,;
cAttachment ,;
cUser ,;
cPassword )
SendMail := " /smtpserver " + alltrim(cSmtpServer) +;
" /to " + alltrim(cTo) +;
" /from " + alltrim(cFrom) +;
" /subject " + alltrim(cSubject) +;
" /body " + alltrim(cBody) +;
" /smtpport " + str(nSmtpPort) +;
" /attachment " + alltrim(cAttachment) +;
" /user " + alltrim(cUser) +;
" /password " + alltrim(cPassword)
cMacro="SENDMAIL " + SendMail
memowrit( cMacro )
? cMacro
memowrit("sendmail.bat",cMacro)
MsgRun( "Conectando a "+LOWER(cSmtpServer)+"..." )
WinExec( cMacro, 7 )
RETURN .T.
function PySendMail( cSmtpServer ,;
cTo ,;
cFrom ,;
cSubject ,;
cBody ,;
nSmtpPort ,;
cAttachment ,;
cUser ,;
cPassword )
SendMail := [Set k = CreateObject("Py.SendMail")]
[k.SMTPServer = ] + alltrim(cSmtpServer)
[k.To = ] + alltrim(cTo)
[k.From = ] + alltrim(cFrom)
[k.User = ] + alltrim(cUser)
[k.Password = ] + alltrim(cPassword)
[k.Subject = ] + alltrim(cSubject)
[k.Body = ] + alltrim(cBody)
[MsgBox k.Send()]
memowrit("pysndmal.vbs",cMacro)
MsgRun( "Conectando a "+LOWER(cSmtpServer)+"..." )
WinExec( cMacro, 7 )
RETURN .T.
A linha ? cMacro apenas apresenta o conteudo da linha de comando não tendo efeito nenhum no processamento.
Neste ultimo exemplo o conteudo foi salvo em um arquivo .VBS(Visual Basic Script) e caso não seja executado pelo comando WinExec() altere a linha memowrit("pysndmal.vbs",cMacro) para memowrit("start pysndmal.vbs",cMacro).
Para os amigos do Clipper puro executem o arquivo .VBS via comando RUN "start pysndmal.vbs"
@braços :?)