---
title: Diretriz no desenvolvimento
slug: hyper/diretriz-no-desenvolvimento
description: Learn how to set up and configure the Graph Mail integration with this comprehensive document. From setting permissions to creating shared folders, this guide covers everything you need to know. Additionally, discover how to configure the Graph Mail Docke
createdAt: 2023-02-24T19:34:52.000Z
---

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.

# Configuração

Os passos a seguir devem ser realizados na ordem em que estão apresentados:

# Infraestrutura

## Parametrização Azure

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  &#x20;envio e leitura de e-mails.

![](https://api.archbee.com/api/optimize/pu5VMc-2TW3GQX4ly5Xp7/zlAleJNn-I30eAZk2Xluz_image.png)

![](https://api.archbee.com/api/optimize/pu5VMc-2TW3GQX4ly5Xp7/YmT8xxuCWpSI_GsR4JWii_image.png)

![](https://api.archbee.com/api/optimize/pu5VMc-2TW3GQX4ly5Xp7/--JIptUseyMcenlZCLtLC_image.png)

![](https://api.archbee.com/api/optimize/pu5VMc-2TW3GQX4ly5Xp7/647PGRgpRSZMilc0K1VbD_image.png)

- Defina as seguintes permissões:

![](https://api.archbee.com/api/optimize/pu5VMc-2TW3GQX4ly5Xp7/g097cmw8cei8czftZYpdf_image.png)

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

![](https://api.archbee.com/api/optimize/pu5VMc-2TW3GQX4ly5Xp7/4Mn7fGZihEAjUg-LJJsxl_image.png)

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

![](https://api.archbee.com/api/optimize/pu5VMc-2TW3GQX4ly5Xp7/WiXrjlzM4IcL4IeYrM1TG_image.png)

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

![](https://api.archbee.com/api/optimize/pu5VMc-2TW3GQX4ly5Xp7/N0pe1OjctSOGFYBQhqwJ5_image.png)

- **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;

## Service Management

### WildFly 1.1.2

**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**

:::BlockQuote
\<jms-queue name="graphMailQueue" entries="queue/graphMailQueue
java\:jboss/exported/jms/queue/queue/graphMailQueue"/>
:::

:::BlockQuote
\<jms-queue name="readGraphMailQueue"
entries="queue/readGraphMailQueue
java\:jboss/exported/jms/queue/queue/readGraphMailQueue"/>
:::

**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&#x20;para ser ouvida, se separar por vírgula:

:::BlockQuote
\<property name="jms.readGraphMailQueue.list" value="readGraphMailQueue"/>
:::

### Compartilhamento de Arquivo

**Pasta para compartilhamento de imagens e arquivos anexos**

Deve-se **criar&#x20;**&#x75;ma **pasta&#x20;**&#x65; 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&#x20;*&#x65; no **parâmetro 479**.

## Parametrização do Graph Mail

### Docker

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.

:::BlockQuote
version: '**2.2**'

**services:**
&#x20;citSOLR:
    container\_name: citSOLR
    image: registry.cloud4biz.com/templates/solr\:latest
    command: solr-create -c base\_conhecimento -d base\_conhecimento\_configs

  citTIKA:
    container\_name: citTIKA
    image: registry.cloud4biz.com/templates/tika\:latest
    command: tika.sh
    ports:
    - 9998:9998

  graphmail:
    image: registry.cloud4biz.com/templates/graphmail:1.1.2 
    container\_name: graphmail
    restart: on-failure
    depends\_on:
        - "4BIZ"

    volumes:
    - /storage/my4biz/attachments\:/opt/attachments/
    - /storage/my4biz/config.properties\:/opt/graphmail/config.properties

  4BIZ:
    container\_name: 4BIZ
    image: registry.cloud4biz.com/templates/itsmops:2.2.9 

    links:
    - citSOLR
    - citTIKA

    environment:
    - XMS=9600
    - XMX=9600
    - MIN\_POOL\_SIZE=10
    - MAX\_POOL\_SIZE=600
    - STATISTICS\_ENABLE=true
    - BLOCKING\_TIMEOUT\_MILLIS=60000
    - IDLE\_TIMEOUT\_MINUTES=2
    - GC\_CLIENT\_INTERVAL=1800000
    - GC\_SERVER\_INTERVAL=1800000
    - PARALLELGCTHREADS=4
    - ADMIN\_USER=seuuser
    - ADMIN\_PASS=QSPLwso497665kderfij
    - DB\_4BIZ=db\_seubanco
    - JB\_CONFI\_XML=standalone-full-ha.x
    - TIME\_ZONE=America/Fortaleza
    - DB\_HOST=10.10.10.20
    - DB\_USER=seuuser
    - DB\_PASSWORD=QSPLwso497665kderfij
    - DB\_PORT=5432
    - 4BIZ\_URL=10.10.10.30
    - GRAPHMAIL\_READ=readGraphMailQueue
    - SOLR\_URL=citSOLR
    - ENABLE\_SSL=yes
    - VALID\_SSL=yes
    - CERT\_KEY\_FILE=seucertificado.jks
    - CERT\_FILE=seucertificado.com.crt
    - CERT\_PASSWORD=789321456
    - CERT\_ALIAS=seualias
    - TIMEOUT\_DEPLOY=60000
    - EVM\_ENABLE=false
    - INV\_ENABLE=false
    - MONGODB\_HOST= #citmongo
    - MONGODB\_PORT= #27017
    - MONGODB\_USER= #admin
    - MONGODB\_PASSWORD= #admin
    - ESPER\_THREADS=4
    - 4BIZ\_PROTOCOL=http
    - 4BIZ\_LOGIN=consultor
    - 4BIZ\_PASSWORD=P\@ssW0rd
    - 4BIZINV\_ID=4bizinventory
    - 4BIZEVM\_ID=4bizevm
    - 4BIZ\_HTTP\_PORT=8080
    - ENABLE\_NEURO=Yes

\#### Parametros do IVM e EVM
    - START\_MONITORA\_INCIDENTES=FALSE
    - JDBC\_ALIAS\_REPORTS=
    - JDBC\_ALIAS\_BPM=
    - JDBC\_ALIAS\_BPM\_EVENTOS=
    - START\_VERIFICA\_EVENTOS=FALSE
    - QUANTIDADE\_BACKUPLOGDADOS=1000
    - START\_MODE\_RULES=FALSE
    - START\_MODE\_ITSM=FALSE
    - INICIAR\_PROCESSAMENTOS\_BATCH=TRUE
    - DBQUARTZ=STANDALONE

\##### Deploys
    - 4BIZ\_APP=Helium-2.3.3.war
    - CITNEURO\_APP=4biz-neuro-builder-1.3.7.7.war
    - CITPROFILE\_APP=
    - 4BIZEVM\_APP=
    - 4BIZINV\_APP=
    - CITAUDIT\_APP=
    - EVM\_INV\_ONLY=No

    # If EVM\_INV\_ONLY=Yes you need to set FULL\_STACK=Yes
    - FULL\_STACK=Yes
    - LOG\_LEVEL=INFO
    - DB\_SYSTEM=postgres
    - ITSM\_FLAVOR=4biz

    ports:
    - 8080:8080
    - 443:8443
    - 9990:9990

    volumes:
    - /storage/my4biz/deploys\:/opt/deploys
    - /storage/my4biz/4biz:/opt/4biz
    - /storage/my4biz/certs\:/opt/wildfly/certs
    - /storage/my4biz/log:/opt/wildfly/standalone/log
    - /storage/my4biz/mp4:/opt/wildfly/mp4
    - /storage/my4biz/assets\:/opt/wildfly/assets
    - /storage/my4biz/attachments\:/opt/attachments/
:::

![](https://api.archbee.com/api/optimize/pu5VMc-2TW3GQX4ly5Xp7/zjcNOXXIHDUbahrK5c_Ks_image.png)

### Config File

No arquivo config.properties do projeto Graph Mail devem ser parametrizadas, de acordo com o cenário do cliente, as seguintes propriedades:

:::BlockQuote
*JMS\_CONNECTION\_FACTORY\_JNDI = jms/RemoteConnectionFactory
JMS\_WILDFLY\_REMOTING\_URL = http-remoting://172.18.0.4:8080
JMS\_QUEUE\_JNDI = jms/queue/queue/graphMailQueue
JMS\_READ\_MAIL\_QUEUE\_JNDI = jms/queue/queue/readGraphMailQueue
JMS\_USERNAME = jmsuser&#xA;*&#x4A;MS\_PASSWORD = 352TEDDWtHpfRObR166VOuOBI1F4
GRAPH\_APP\_ID = 51255c25-165446-25d5sd5d5-dssdsd
GRAPH\_USERNAME = [seue-mail@seudominio.gov.br](#)
GRAPH\_PASSWORD = QsPlWSOK
GRAPH\_MAIL\_FOLDERS\_LIST = Inbox
:::

### Dependência

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;
    - <font color="#ff0000">Destino da mensagem processada\: O sistema marca como lida a mensagem já processada;</font>
    - 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.



