# Email Trigger V2

O **Email Trigger V2** recupera dados de uma caixa de email e os envia para o pipeline.

{% hint style="info" %}
Este trigger oferece suporte apenas ao **protocolo IMAP**.
{% endhint %}

## **Parâmetros**

Dê uma olhada nos parâmetros de configuração do trigger. Parâmetros suportados por [expressões Double Braces](https://docs.digibee.com/documentation/connectors-and-triggers/pt-br/double-braces/overview) estão marcados com `(DB)`.

#### **Parâmetros de configuração**

<table data-full-width="true"><thead><tr><th>Parâmetro</th><th>Descrição</th><th>Valor padrão</th><th>Tipo de dado</th></tr></thead><tbody><tr><td><strong>Account</strong></td><td>Define o <a href="https://app.gitbook.com/s/cO0A6g1dOsu8BiHYqO67/platform-administration/settings/accounts#tipos-de-contas">tipo de conta</a> utilizado pelo trigger. Tipos suportados: <strong>Basic</strong>, <strong>OAuth 2</strong> e <strong>Azure Key</strong>.</td><td>N/A</td><td>String</td></tr><tr><td><strong>E-mail</strong></td><td>Endereço de email a ser acessado. Se o tipo de conta for <strong>OAuth 2</strong>, somente endereços de email hospedados no Google são suportados. Para endereços de email da Microsoft, utilize o tipo de conta <strong>Azure Key</strong>.</td><td>N/A</td><td>String</td></tr><tr><td><strong>Operation</strong></td><td>Especifica a ação a ser executada pelo trigger. Opções: <strong>Mark as Read</strong>, <strong>Move to Another Folder</strong> e <strong>Delete</strong>. Veja detalhes na seção <strong>Operações</strong>.</td><td>Mark as Read</td><td>String</td></tr><tr><td><strong>Hostname</strong></td><td>Hostname do servidor IMAP (por exemplo, <code>imap.uol.com</code>).</td><td>imap.gmail.com</td><td>String</td></tr><tr><td><strong>Port</strong></td><td>Número da porta para conexão IMAP.</td><td>993</td><td>Integer</td></tr><tr><td><strong>Email Folder</strong></td><td>Nome da pasta/caixa de entrada que o trigger irá ler (por exemplo, <code>inbox</code>). Essa pasta não deve conter mais de 100 mensagens (lidas ou não lidas).</td><td>inbox</td><td>String</td></tr><tr><td><strong>Destination Email Folder</strong></td><td>Define para qual pasta as mensagens devem ser movidas. Este campo é exibido apenas quando a opção <strong>Move to Another Folder</strong> está selecionada no parâmetro <strong>Operation</strong>.</td><td>N/A</td><td>String</td></tr><tr><td><strong>Maximum Timeout</strong></td><td>Tempo máximo de processamento (em milissegundos) antes de o pipeline retornar uma resposta. Limite: <code>900000</code>.</td><td>30000</td><td>Integer</td></tr><tr><td><strong>Allow Redelivery Of Messages</strong></td><td>Quando habilitado, permite que as mensagens sejam entregues novamente caso o Pipeline Engine falhe.</td><td>False</td><td>Booleano</td></tr><tr><td><strong>Documentation</strong></td><td>Seção para documentar informações necessárias sobre a configuração do conector e regras de negócio.</td><td>N/A</td><td>String</td></tr></tbody></table>

## **Operações**

* **Mark as Read**: Marca a mensagem como lida após o processamento.
* **Move to Another Folder**: Move a mensagem processada para uma pasta específica. O campo **Destination Email Folder** é obrigatório nesse caso.
* **Delete**: Exclui a mensagem após o processamento.

## **Anexos**

Se o email recebido contiver anexos, eles serão baixados e armazenados no diretório de execução do pipeline. Os nomes dos arquivos estarão listados na propriedade `attachments`, como um array de strings.

Se houver dois anexos com o mesmo nome, um identificador único será adicionado para diferenciá-los.

**Exemplo:**\
Se um email contiver dois anexos chamados `file.csv`, a propriedade `attachments` será:

```json
{
  "attachments": ["file.csv", "0072e485-8ba2-4f79-bba5-8068e37ee792_file.csv"]
}
```

O identificador é gerado a cada execução.

{% hint style="info" %}
Se estiver utilizando o Gmail como servidor IMAP, será necessário autorizar o acesso de aplicativos menos seguros. Consulte a [documentação externa do Google](https://support.google.com/accounts/answer/6010255?hl=pt-BR) para mais detalhes.
{% endhint %}

## **Exemplo de uso**

Siga as etapas abaixo para configurar e utilizar o trigger:

1. Abra as configurações do trigger e selecione o tipo **email-v2**.
2. Preencha os campos de configuração conforme necessário. Neste exemplo, selecione a opção **Mark as Read** em **Operation**.
3. Clique em **Confirmar**.
4. Continue [construindo o pipeline](https://app.gitbook.com/s/cO0A6g1dOsu8BiHYqO67/development-cycle/build-overview/pipelines/how-to-create-a-pipeline).
5. Implante do pipeline. Aprenda o [passo a passo](https://app.gitbook.com/s/cO0A6g1dOsu8BiHYqO67/development-cycle/overview/deployment/deployments).

Quando acionado, o pipeline receberá um payload semelhante a este:

```json
{
  "textMessage": "",
  "htmlMessage": "Hello, Peter\r\nI still haven’t received the report for this month. Could you send it by the end of the day?",
  "attachments": [
    "attachment_fileName1",
    "attachment_fileName2",
    "attachment_fileName3"
  ],
  "subject": "Monthly report",
  "from": [
    "Renato Peixe Junior <renato.peixe@gmail.com>"
  ],
  "to": [
    "peter.gomes@gmail.com"
  ],
  "cc": [],
  "bcc": [],
  "replyTo": [
    "Renato Peixe Junior <renato.peixe@gmail.com>"
  ],
  "sentDate": "2020-02-10T17:54:40Z[UTC]",
  "receivedDate": "2020-02-10T17:54:52Z[UTC]"
}
```

#### **Campos do payload**

* **textMessage**: Conteúdo em texto simples do email.
* **htmlMessage**: Conteúdo do email em formato HTML.
* **attachments**: Lista com os nomes dos arquivos anexos.
* **subject**: Assunto do email.\
  **from**: Email do remetente.
* **to**: Emails dos destinatários.
* **cc**: Emails em cópia.\
  **bcc**: Emails em cópia oculta.
* **replyTo**: Email para o qual a resposta deve ser enviada.
* **sentDate**: Data e hora em que o email foi enviado.
* **receivedDate**: Data e hora em que o email foi recebido.
