Acho que quando foi criado o Pop3 a ideia era popularizá-lo assim como ocorreu com a musica que se tornou mundial e importante. E por incrível que pareça, creio que o tal Pop3 hoje deve ser mais importante no seu dia-a-dia que a própria musica Pop. Porque? simples, é o protocolo Post Office Protocol, que traduzido para o português simples significa: protocolo utilizado para acesso a uma caixa postal de correio eletrônico (email).
Agora vamos a um cenário interessante, que tal se você construir o próximo sistema de caixa de correio, para substituir os já re-estilizados Google Mail, Outlook e assim por diante, quem sabe se seu projeto incluísse recursos de troca de imagens, grupos, contatos,..., viagem? Acho que sim, creio que ninguém vai gastar muita energia para produzir algo assim, mesmo que em Genexus a coisa seja muito fácil de fazer. Ou seja, Genexus oferece a você recursos que possibilitam a construção de sistemas do tipo caixa de correio eletrônico. Vamos programar uma, digamos, só por curiosidade?
Tipo Pop3Session
Tudo começa com uma variável &Pop3Session, do mesmo tipo, que tem por incumbência conectar a um certo servidor de e-mails, e obter as mensagens que lá estão.// conexao no POP3
&pop3session.Host = '*** servidor POP ***'
&pop3session.Port = 110
&pop3session.UserName = '*** email ***'
&pop3session.Password = '*** senha ***'
&pop3session.Login()
Em caso de sucesso na conexão ao servidor, uma mensagem OK poderá ser utilizada para prosseguir com a operação.
if &pop3session.ErrDescription = 'OK'
... continuar ...
endif
Esse comando If nos permite saber se a conexão ocorreu com sucesso, mas caso contrário, talvez seja interessante você conhecer as possíveis mensagens de erro retornadas na operação.
Lendo mensagens
A segunda parte do processo consiste em ler as mensagens que estão no servidor, sendo que para isso podemos realizar dois algoritmos simples:1) Total de mensagens a ler
&total = &pop3session.Count
for &i=1 to &total
&pop3session.Receive(&mailmessage)
... tratar a mensagem
endfor
2) Ler enquanto não ocorrer erro
do while &erro=0
&erro = &pop3session.Receive(&mailmessage)
if &Erro = 0
... tratar a mensagem
endifenddo
Em ambas as situações o que Receive nos devolve é a mensagem no formato MailMessage, ou seja, com todas as informações, To, Subject, ..., bem simples de ler e entender o conteúdo recebido.
Uma vez lida a mensagem do servidor, algumas ações poderão ser realizadas, como por exemplo:
&pop3session.delete()
Para apagar a mensagem previamente lida, removendo-a da caixa de entrada remota.
Tem uma outra propriedade MarkAsRead que insiste em apresentar um erro quando utilizo, mas creio que possa ser útil, não tenho certeza.
Fechando a conta
Antes de fechar não se esqueça de realizar um.&pop3session.logout()
Assim como ocorreu com o Pop Music, em 1950, esse tipo existe desde a versão 7.5 do Genexus, não que o nosso Gx existia nesta época, é que o recurso que temos em mãos na verdade já é bem antigo, mas continua a provocar suspiros nas meninas.
Eu particularmente, gosto bastante.
Nenhum comentário:
Postar um comentário