BISMail

De BIS Wiki
Revisão de 17h06min de 24 de junho de 2015 por Rodrigogml (discussão | contribs) (Criou página com 'BISMail é o serviço que o Core oferece para gerenciar caixas de e-mail do sistema. De forma centralizada permitindo que vários módulos e plugins possam usa a mesma caixa d...')
(dif) ← Edição anterior | Revisão atual (dif) | Versão posterior → (dif)
Ir para navegação Ir para pesquisar

BISMail é o serviço que o Core oferece para gerenciar caixas de e-mail do sistema. De forma centralizada permitindo que vários módulos e plugins possam usa a mesma caixa de e-mail para diferentes fins. A caixa de e-mail pode ser usada para o envio de e-mail, ou mesmo para a interpretação dos e-mails recebidos.

Entidades

MailBoxVO

Representa uma caixa (ou conta) de e-mail. Tem os atributos necessários para identificação e acesso do e-mail, como usuário, senha, servidor, etc. Além disso contém a associação de um SchedulerVO, entidade usada no serivço Scheduler responsável por agendar tarefas. Neste caso para agendar as checagens de novos e-mails.

MailMessageVO

Entidade que representa uma mensagem de e-mail. Pode ser uma mensagem de e-mail recebida, um rascunho aguardando finalização, ou uma mensagem já enviada.

  • Mantém referência para a caixa de e-mail à qual esta mensagem foi recebida/enviada.
  • Referencia quatro listas de MailAddress***VO para armazenar os destinatários, os "Cópia Carbono" e os "Cópia Carbono Oculta" e dos remetentes da mensagem.
    Embora pareça um absurdo o campo "from" pode conter uma lista de endereços pela API de e-mail do java. Como não pude encontrar se há mesmo a possibilidade de múltiplos "senders", acatei a API.
  • Referencia ainda uma instância de MailAddressVO para o endereço do remetente usado na ocasião do recebimento/envio.
  • Referencia ainda o MailAttachmentVO que representa os anexos da mensagem.

Funcionalidades

Todos os métodos de acesso ao serviço estão disponibilizados através da fachada. No entanto o internamente o serviço está separado em duas partes:

  • CRUD: Os métodos comuns do crud de inserir, alterar, excluir e finds estão todos implementados nos próprios CRUDs de qualquer objeto como no padrão do BIS.
  • MailController: Classe estática com os métodos que fazem a comunicação com o servidor. Faz parte do crud, mas por ter o acesso ao servidor e utilizar a JavaMail API o código foi separado nesta classe apenas por organização.

Checagem de E-mail

Uma vez criada a caixa de e-mail e configurada o agendador de checagens, o sistema fará a checagem de novas mensagens de acordo com o tempo estabelecido. Para cada nova mensagem recebida o serviço disparará eventos para sinalizar a chegada das novas mensagens através do serviço EventDispatcher. A relação de eventos pode ser encontrada em Relação_de_Eventos_do_BISCore (onde os eventos são listados e mantidos de forma centralizada para simplificar a manutenção).

Envio de E-mail

TODO Task
Definir sistema de envio de e-mail