BISMail: mudanças entre as edições

De BIS Wiki
Ir para navegação Ir para pesquisar
Sem resumo de edição
 
(3 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 1: Linha 1:
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.
BISMail é o serviço que o BIS10 oferece para gerenciar caixas de e-mail do sistema. Montado em cima dos métodos oferecidos pelo [[FWMail]], o BISMail centraliza as funcionalidades de e-mail do sistema peritindo que o sistema compartilhe as caixas de e-mails cadastradas no sistema.


== Entidades ==
= Entidades =


=== MailBoxVO ===
== 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.
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.


=== MailMessageVO ===
== 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.
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.
* 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.
* 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.
* Referencia ainda uma instância de MailAddressVO para o endereço do remetente usado na ocasião do recebimento/envio.
*: 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.
*: 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.
* Referencia ainda o MailAttachmentVO que representa os anexos da mensagem.


== Funcionalidades ==
= Funcionalidades =
 
Todos os métodos de acesso ao serviço estão disponibilizados através da fachada. Melhor e mais atualizada documentação no JavaDoc dos métodos.


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:
== Agendamento de Checagem de E-mails ==
* '''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.


=== Agendamento de Checagem de E-mails ===
A caixa de e-mail tem um parâmetro que permite configurar se os e-mails devem ou não serem "baixados" do servidor. Caso verdadeiro, o sistema fará a verificação de novas mensagens automaticamente. Para cada nova mensagem recebida o serviço disparará eventos através do serviço [[EventDispatcher]]. A relação de eventos pode ser encontrada em [[Eventos do BIS10]].


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).
== Os métodos do CRUD ==


=== Métodos CRUD ===
O CRUD apresenta tantos métodos com a finalidade de enviar um e-mail a partir de uma caixa de correio específica (como a conta de e-mail de um usuário específico), quando o método '''sendMailFromSystem()''' com a finalidade de enviar um e-mail com a conta padrão do sistema.


O serviço apresenta os métodos de CRUD padrões para as entiades '''MailBoxVO''' e '''MailMessageVO'''
A conta padrão do sistema deve ser utilizada para enviar e-mails automáticos do sistema, de notificação, relatórios agendados, etc. diretamente para seus usuários. As contas de e-mail particulares devem ser utilizadas quando um usuário deseja compartilhar algum relatório/informação com alguém.


=== Manipulação de E-mails ===


Para funcionar como um "cliente" de e-mail o serviço deve prover métodos utilizados como em um cliente de e-mail como por exemplo para verificar novos e-mails, enviar mensagens, etc.
{{nota|Sistema de Notificações do BIS|Note que além do e-mail, o BIS tem o [[BISNotification]]. O [[BISNotification]] é o sistema de centralização de envio de notificações do sistema para "targets" específicos. Leia o material para entender como funciona o sistema, e se for o caso faça os disparos de e-mails através do [[BISNotification]] ao invés de enviar um e-mail diretamente.}}

Edição atual tal como às 16h59min de 28 de outubro de 2020

BISMail é o serviço que o BIS10 oferece para gerenciar caixas de e-mail do sistema. Montado em cima dos métodos oferecidos pelo FWMail, o BISMail centraliza as funcionalidades de e-mail do sistema peritindo que o sistema compartilhe as caixas de e-mails cadastradas no sistema.

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.

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.
  • Referencia ainda uma instância de MailAddressVO para o endereço do remetente usado na ocasião do recebimento/envio.
    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 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. Melhor e mais atualizada documentação no JavaDoc dos métodos.

Agendamento de Checagem de E-mails

A caixa de e-mail tem um parâmetro que permite configurar se os e-mails devem ou não serem "baixados" do servidor. Caso verdadeiro, o sistema fará a verificação de novas mensagens automaticamente. Para cada nova mensagem recebida o serviço disparará eventos através do serviço EventDispatcher. A relação de eventos pode ser encontrada em Eventos do BIS10.

Os métodos do CRUD

O CRUD apresenta tantos métodos com a finalidade de enviar um e-mail a partir de uma caixa de correio específica (como a conta de e-mail de um usuário específico), quando o método sendMailFromSystem() com a finalidade de enviar um e-mail com a conta padrão do sistema.

A conta padrão do sistema deve ser utilizada para enviar e-mails automáticos do sistema, de notificação, relatórios agendados, etc. diretamente para seus usuários. As contas de e-mail particulares devem ser utilizadas quando um usuário deseja compartilhar algum relatório/informação com alguém.


Sistema de Notificações do BIS
Note que além do e-mail, o BIS tem o BISNotification. O BISNotification é o sistema de centralização de envio de notificações do sistema para "targets" específicos. Leia o material para entender como funciona o sistema, e se for o caso faça os disparos de e-mails através do BISNotification ao invés de enviar um e-mail diretamente.