Email Tickets Service

Serviço de criação chamados a partir da troca de e-mails.

Setup de desenvolvimento

Antes de iniciar o serviço, é necessário fazer a instalação das dependências do projeto. Para fazê-lo, execute o comando do Composer a seguir:

$ composer install

Para executar o projeto no ambiente de desenvolvimento, basta executar o comando a seguir:

$ docker-compose up

Para produção

Gerando imagem partir do Dockerfile

O arquivo Dockerfile, localizado na raíz do projeto, ficará por containerizar toda a aplicação para que ele possa ser usada em clusters. Para gerar uma imagem da aplicação containerizada, execute o comando abaixo na raíz do projeto:

$ docker build -t email_tickets_service .

Usando Docker Compose

Caso queira usar o Docker Compose para rodar a aplicação em produção, basta substituir o Dockerfile-dev indicado no arquivo docker-compose.yml pelo Dockerfile de produção.

Configuração

A configuração da aplicação é feita por meio de variáveis de ambiente, que deve ser feito na criação do container.

Variáveis de ambiente

Nome Tipo Obrigatório Descrição
DATABASE_URL string Sim URL de conexão do banco de dados MySQL
IMAP_HOST string Sim Caminho do servidor de caixa de e-mail
IMAP_USERNAME string Sim E-mail do usuário para acessar a caixa de e-mail
IMAP_PASSWORD string Sim Senha do usuário para acessar a caixa de e-mail
WEBHOOK_ENDPOINT string Sim URL que deve receber os e-mails
MAX_ATTEMPTS int Sim Número máximo de tentativas de envio para URL configurada em WEBHOOK_ENDPOINT

IMAP

IMAP é o protocolo utilizado para buscar os e-mails na caixa de e-mail neste serviço e esta seção terá informações importantes sobre sua configuração. Antes de seguir com este guia de configuração você deve habilitar o acesso da caixa de e-mail por este protocolo no seu provedor de e-mail.

Caixa de e-mail

O caminho do servidor da caixa de e-mail segue o seguinte formato:

{<dominio_do_servidor>[:<porta>][<flags>]}[<nome_caixa_email>]

Para a lista completa de flags clique aqui.

Exemplos
  • Gmail: {imap.gmail.com:993/imap/ssl}INBOX
  • Outlook/Hotmail: {outlook.office365.com:993/imap/ssl}INBOX
  • Yahoo: {imap.mail.yahoo.com:993/imap/ssl}INBOX

Gmail

Devido a uma incompatiblidade com a biblioteca IMAP, alguns passos extras devem ser realizados caso queira configurar um e-mail do Gmail.

1) Pulando verificação de certificado

Para evitar esta etapa no servidor de e-mail você deve adicionar a flag /novalidate-cert. Resultado: {imap.gmail.com:993/imap/ssl/novalidate-cert}INBOX

2) Habilitar Less secure apps

Para habilitar este recurso acesse este link.

Dados de envio

Esta seção irá detalhar os dados que serão enviados para a URL configurada.

Message

Atributo Tipo Descrição
id string int Identificador da mensagem
name string Nome do remetente
email string E-mail do remetente
body string Corpo da mensagem
thread_id string Identificador da conversa
contract_id string Identificador do contrato
sent_at date Data de envio da mensagem no formato ISO 8601
attachments Attachment[] Anexos da mensagem

Attachment

Atributo Tipo Descrição
id string int Identificador do anexo
name string Nome do arquivo em anexo
attachment_id string Identificador do anexo no servidor de e-mail
file file Arquivo em anexo