Clipper On Line • Ver Tópico - Receber emails no Clipper e enviar emails autenticados...

Receber emails no Clipper e enviar emails autenticados...

Aqui você poderá oferecer suas Contribuições, Dicas e Tutoriais (Texto ou Vídeo) que sejam de interesse de todos.

Moderador: Moderadores

 

Receber emails no Clipper e enviar emails autenticados...

Mensagempor rochinha » 16 Dez 2005 19:25

Amiguinhos

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 :?)
Editado pela última vez por rochinha em 21 Out 2007 07:13, no total de 3 vez
Avatar de usuário

rochinha
Membro Master

Membro Master
 
Mensagens: 4538
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 800 vezes
Mens.Curtidas: 242 vezes

Mensagempor spereira » 19 Fev 2006 10:23

Caro Rochinha,

fiz o comando diretamente na linha de comandos do DOS mas dá um erro. O comando que coloquei foi o seguinte:

d:\temp\sendmail\sendmail /smtpserver mail.clix.pt /to ss.pereira@clix.pt /from sergiospereira@ig.com.br.pt /subject SendMail teste /body Este foi um teste com SendMail /smtpport 25 /attachment d:\temp\sendmail\sendmail.txt /user sergiospereira /password xxxxxx

digitei direto na linha de comandos mas retorna o seguinte:

Run-time error: ´-2147220975 (800402211)´
A mensagem não pode ser enviada para o servidor SMTP. O código de erro de transporte foi 0x80040217. Resposta do servidor: not available.

Preciso muito utilizar este programa para envio de emails no meu programa pois temos vários clientes que tem de receber resultados diariamente e, através do sistema seria excelente.

O que poderia estar errado no meu comando, falta alguma coisa?

Abraço.
[/img]
spereira
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 85
Data de registro: 19 Jul 2004 11:42
Cidade/Estado: Porto - Portugal
Curtiu: 2 vezes
Mens.Curtidas: 0 vez

Mensagempor spereira » 19 Fev 2006 12:01

spereira escreveu:Caro Rochinha,

fiz o comando diretamente na linha de comandos do DOS mas dá um erro. O comando que coloquei foi o seguinte:

d:\temp\sendmail\sendmail /smtpserver mail.clix.pt /to ss.pereira@clix.pt /from sergiospereira@ig.com.br.pt /subject SendMail teste /body Este foi um teste com SendMail /smtpport 25 /attachment d:\temp\sendmail\sendmail.txt /user sergiospereira /password xxxxxx

digitei direto na linha de comandos mas retorna o seguinte:

Run-time error: ´-2147220975 (800402211)´
A mensagem não pode ser enviada para o servidor SMTP. O código de erro de transporte foi 0x80040217. Resposta do servidor: not available.

Preciso muito utilizar este programa para envio de emails no meu programa pois temos vários clientes que tem de receber resultados diariamente e, através do sistema seria excelente.

O que poderia estar errado no meu comando, falta alguma coisa?

Abraço.
[/img]


Rochinha,

tentei com o BLAT e consegui.

Obrigado pela atenção.
spereira
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 85
Data de registro: 19 Jul 2004 11:42
Cidade/Estado: Porto - Portugal
Curtiu: 2 vezes
Mens.Curtidas: 0 vez




Retornar para Contribuições, Dicas e Tutoriais

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 23 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro