Diretriz no desenvolvimento
Esta implementação não substitui a antiga integração POP3, SMT e IMAP para outros serviços de e-mail. Pode inclusive estar parametrizada para ser usada ao mesmo tempo com estas integrações.
Os passos a seguir devem ser realizados na ordem em que estão apresentados:
Dentro da plataforma Microsoft Azure:
- Crie ou escolha um e-mail para ser utilizado pelo sistema nestas integrações. Não é necessário ser uma conta de e-mail específica, mas o usuário tem que ter ciência de que a leitura e envio de e-mails pelo sistema pode modificar e poluir esta caixa de correio. Então, deve criar regras e pastas para limpeza e organização das mensagens, a fim de que o trabalho de um não interfira no trabalho do outro;
- Crie ou escolha um aplicativo no Azure Active Directory desta conta de e-mail, será utilizado para envio e leitura de e-mails.




- Defina as seguintes permissões:

- Defina o acesso ao aplicativo para a conta de e-mail que será utilizada:

- Permita os fluxos de cliente público para o aplicativo:

- APP ID: Guarde este ID para as futuras configurações.

- Pastas para leitura de e-mail: Se o usuário deseja definir pastas e regras de filtragem para a leitura da caixa de e-mail, crie-as neste momento. Nesta primeira versão do projeto Graph Mail só é realizada a varredura para identificar as pastas no momento em que é iniciado;
Usuário ActiveMQ
Defina um usuário para acesso às filas ActiveMQ executando o comando abaixo e parametrizando uma senha segura para a opção “-p” de acordo com seu ambiente:
sh add-user.sh -a -u jmsuser -p 1 -g guest
Filas ActiveMQ
No arquivo de configuração do WilfFly (standalone.xml, por exemplo) devem ser definidas as filas de leitura e envio de e-mail. Adicione as tags com seus devidos nomes de fila dentro da tag principal: <subsystem xmlns="urn:jboss:domain:messaging-activemq:3.0">
Exemplo
System Properties
Para que o projeto Service Management suba os listeners, que irão escutar as filas da leitura de e-mail, é necessário definir a property na tag <system-properties> do standalone.xml, onde se pode colocar mais de um nome de lista para ser ouvida, se separar por vírgula:
Pasta para compartilhamento de imagens e arquivos anexos
Deve-se criar uma pasta e definir permissões de escrita e leitura no servidor das aplicações, para o mapeamento de volume dos containers docker, que irão subir as aplicações. Assim permitem o compartilhamento de arquivos entre elas. Esta pasta será utilizada nos arquivos compose e no parâmetro 479.
No arquivo docker-compose.yml do projeto Graph Mail deve-se definir o correto local do arquivo config.properties e da pasta definida para compartilhamento de imagens e anexos.

No arquivo config.properties do projeto Graph Mail devem ser parametrizadas, de acordo com o cenário do cliente, as seguintes propriedades:
O projeto Graph Mail depende do projeto Service Management, portanto só deve ser executado quando o Serice Management estiver funcionando:
Funcionamento
- Uma Thread ou Job:
- Obtém as mensagens de e-mail ocasionalmente, extraindo: remetente, subject, body e attachments da lista de pastas parametrizada;
- Registra as mensagens recebidas numa fila específica para registro de tickets no WildFly, contendo o nome da pasta, da fila e o conteúdo do e-mail, incluindo a lista de anexos;
- Grava os anexos numa pasta mapeada em um volume que o SM é capaz de acessar;
- Realiza o "Procedimento de controle dos e-mails":
- Controle do processamento: o sistema lê uma pasta pré-definida, filtrando as regras de processamento de ações automáticas que podem ser incidente, problema, mudança ou liberação: o que determina é o cadastro da ação automática;
- Destino da mensagem processada: O sistema marca como lida a mensagem já processada;
- Compartilhamento da caixa de correio:
- Poderá será utilizado pelo usuário e pelo sistema, se implementada a pasta para leitura;
- Também será utilizado para envio de e-mail.