# Email V2

O conector **Email V2** permite o envio de e-mails simples em formato HTML, com ou sem anexos.

## **Parâmetros**

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

### **Aba General**

<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 Type</strong></td><td>Tipo de <a href="/spaces/cO0A6g1dOsu8BiHYqO67/pages/fS1QLzAg8rGSSJFwtrvy">conta usada para autenticação</a>. Suportados: <strong>Azure Key</strong> e <strong>Basic</strong>.</td><td>Basic</td><td>String</td></tr><tr><td><strong>Account</strong></td><td>Conta usada para autenticar no servidor de email. Obrigatória se o serviço exigir autenticação. Suportados: <strong>Azure Key</strong> e <strong>Basic</strong>.</td><td>N/A</td><td>String</td></tr><tr><td><strong>SMTP Host</strong> <code>(DB)</code></td><td>Host do servidor SMTP. Exemplo: <code>smtp.gmail.com</code></td><td>smtp.gmail.com</td><td>String</td></tr><tr><td><strong>SMTP Port</strong> <code>(DB)</code></td><td>Porta do servidor SMTP. Geralmente é a 587, mas pode variar.</td><td>587</td><td>Integer</td></tr><tr><td><strong>From</strong> <code>(DB)</code></td><td>Endereço de email do remetente.</td><td>N/A</td><td>String</td></tr><tr><td><strong>To</strong> <code>(DB)</code></td><td>Endereço(s) de email do(s) destinatário(s), separados por vírgula.</td><td>N/A</td><td>String</td></tr><tr><td><strong>CC</strong> <code>(DB)</code></td><td>Endereço(s) de email em cópia, separados por vírgula.</td><td>N/A</td><td>String</td></tr><tr><td><strong>BCC</strong> <code>(DB)</code></td><td>Endereço(s) de email em cópia oculta, separados por vírgula.</td><td>N/A</td><td>String</td></tr><tr><td><strong>Subject</strong> <code>(DB)</code></td><td>Assunto do email.</td><td>N/A</td><td>String</td></tr><tr><td><strong>Charset</strong></td><td>Conjunto de caracteres usado no corpo do email.</td><td>UTF-8</td><td>String</td></tr><tr><td><strong>Content</strong> <code>(DB)</code></td><td>Corpo do email. Suporta templates Freemarker para HTML dinâmico.</td><td>N/A</td><td>String</td></tr><tr><td><strong>Custom Attachments Specification</strong></td><td>Ativa o envio de anexos via array (modo RAW) e oculta o campo de anexo via formulário.</td><td>False</td><td>Booleano</td></tr><tr><td><strong>Attachments</strong></td><td>Anexos do email. Especificados via formulário ou array.</td><td>N/A</td><td>Array of objects</td></tr><tr><td><strong>Authenticated</strong></td><td>Ative se for necessário autenticar no SMTP.</td><td>True</td><td>Booleano</td></tr><tr><td><strong>Is Over TLS</strong></td><td>Ative para enviar a mensagem via TLS.</td><td>True</td><td>Booleano</td></tr><tr><td><strong>Is Over SSL</strong></td><td>Ative para enviar a mensagem via SSL. Disponível apenas quando <strong>Is Over TLS</strong> está desabilitado.</td><td>False</td><td>Booleano</td></tr><tr><td><strong>Socket Port</strong> <code>(DB)</code></td><td>Obrigatório se SSL estiver ativado. Especifica a porta usada. Disponível apenas quando <strong>Is Over SSL</strong> está habilitado.</td><td>N/A</td><td>Integer</td></tr><tr><td><strong>Force TLSv1.2</strong></td><td>Força o uso de TLS 1.2 para conexões seguras com o servidor de e-mail. Disponível apenas quando <strong>Is Over SSL</strong> está habilitado.</td><td>False</td><td>Booleano</td></tr><tr><td><strong>Fail On Error</strong></td><td>Se ativado, interrompe a execução do pipeline ao ocorrer um erro. Se desativado, a execução continua, mas a propriedade <code>"success"</code> será definida como <code>false</code>.</td><td>False</td><td>Booleano</td></tr></tbody></table>

{% hint style="info" %}
Para incorporar imagens no corpo do e-mail, use o prefixo `cid:` no parâmetro **Attachments**, seguido do nome da imagem. Exemplo: `<img src="cid:image.png" />`
{% endhint %}

### **Aba Documentaçã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>Documentation</strong></td><td>Campo opcional para descrever a configuração do conector e quaisquer regras de negócio relevantes.</td><td>N/A</td><td>String</td></tr></tbody></table>

## **Fluxo de mensagens**

### **Entrada**

Não é necessária nenhuma mensagem de entrada específica, a menos que alguma expressão Double Braces seja usada em um dos campos.

### **Saída**

O conector retorna um objeto JSON como este:

```json
{
  "from": "a@a.com",
  "to": "a@a.com,a@a.com.br",
  "cc": "a@a.com,a@a.com.br",
  "bcc": "a@a.com,a@a.com.br",
  "subject": "Subject",
  "content": "<html>Test Email!</html>",
  "charset": "UTF-8",
  "success": true,
  "attachments": [
    {
      "type": "ATTACHMENT",
      "attachment": "attachment.extension"
    }
  ]
}
```

**Explicação dos campos:**

* `from`: Email do remetente
* `to`: Destinatários
* `cc`: Destinatários em cópia
* `bcc`: Destinatários em cópia oculta
* `subject`: Assunto do email
* `content`: Corpo do email (será truncado se exceder 256 caracteres)
* `charset`: Codificação de caracteres utilizada
* `success`: Indica se o envio da mensagem foi bem-sucedido
* `attachments`: Lista de anexos

{% hint style="info" %}
Os arquivos são manipulados de forma segura em um diretório temporário exclusivo do pipeline.
{% endhint %}

Saiba mais sobre o [processamento de mensagens](/documentation/developer-guide/pt-br/development-cycle/build-overview/pipelines/messages-processing.md) na Digibee Integration Platform.

## **Email V2 em ação**

### **Autenticação**

O conector **Email V2** suporta os seguintes métodos de autenticação:

**Basic**

* Use uma conta do tipo Basic, onde o **username** é o e-mail do remetente e a **password** é a senha correspondente.

**OAuth 2**

{% hint style="warning" %}
Atualmente compatível apenas com contas de e-mail Microsoft (Outlook).
{% endhint %}

Para configurar:

* Preencha o campo **From** com o endereço de e-mail do remetente.
* Selecione uma **Azure Key** com as credenciais necessárias.

Internamente, o conector utiliza `client-id`, `client-secret` e `tenant-id` para gerar um token, que é usado junto ao email do remetente para autenticar com o servidor SMTP.

### **Exemplo: Email com anexos e imagem embutida (modo RAW)**

**Configuração:**

* **SMTP Host**: [smtp.gmail.com](http://smtp.gmail.com)
* **SMTP Port**: 587
* **From**: <email@gmail.com> (mesmo email configurado no parâmetro **Account**)
* **To**: <some_other_email@gmail.com>, <second_email@gmail.com>
* **Subject**: Hello
* **Content**:

```html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  <title>Demystifying Email Design</title>
  <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
</head>
<body>
<img src="cid:myImage.png" />
</body>
</html>
```

* **Authenticated**: true
* **Is Over TLS**: true
* **Attachment As Raw**: true
* **Attachments**:

```json
[
  { "type": "INLINE", "attachment": "myImage.png" },
  { "type": "ATTACHMENT", "attachment": "xpto.txt" }
]
```

**Saída:**

```json
{
    "from": "email@gmail.com",
    "to": "some_other_email@gmail.com,second_email@gmail.com",
    "cc":"",
    "bcc": "",
    "subject": "Hello",
    "content": "<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv ...TRUNCATED",
    "charset": "UTF-8",
    "success": true,
    "attachments": [
        {"type": "INLINE", "attachment": "myImage.png" },
        {"type": "ATTACHMENT", "attachment": "xpto.txt" }
    ]
}
```

### **Exemplo dinâmico com expressões Double Braces**

Você pode usar [**expressões Double Braces**](/documentation/connectors-and-triggers/pt-br/double-braces/overview.md) para inserir variáveis dinamicamente na configuração do conector.

Neste exemplo, o componente [**JSON Generator (Mock)**](/documentation/connectors-and-triggers/pt-br/connectors/tools/json-generator.md) foi configurado com os seguintes dados:

#### **JSON de entrada:**

```json
{
    "remetente": "digibee@gmail.com",
    "destinatario" : "digi@gmail.com",
    "destinatario_cc" : "digi1@gmail.com",
    "destinatario_bcc" : "digi2@gmail.com",
    "port" : "587",
    "host": "smtp.gmail.com",
    "NF": "98787979789",
    "M_VENC" : "13/01/2023"
}
```

Em seguida, o conector **Email V2** foi configurado da seguinte forma:

* **SMTP Host:** `{{ message.host }}`
* **SMTP Port:** `{{ message.port }}`
* **From:** `{{ message.remetente }}`
* **To:** `{{ message.destinatario }}`
* **CC:** `{{ message.destinatario_cc }}`
* **BCC:** `{{ message.destinatario_bcc }}`
* **Subject:** `{{ CONCAT("Nota fiscal ", FORMATDATE(NOW(), "timestamp", "MMMM yyyy", null, "UTC", "pt-BR", "GMT-3")) }}`
* **Charset:** `UTF-8: Eight-bit Unicode (or UCS) Transformation Format`
* **Content:**

```html
<!DOCTYPE html>
<html>
<head>
</head>
<body>

Boa tarde, <br/>
Segue a nota fiscal <a href='${NF}'>(Clique aqui)</a> referente à mensalidade da plataforma – com vencimento em <b>${M_VENC}</b>. <br/>
O pagamento será via <b>transferência bancária</b>, conforme dados informados na nota fiscal. <br/><br/>

Por favor, confirme o recebimento. <br/>
Em caso de dúvidas, estamos à disposição. <br/><br/>

<br/>
<br/>
Att.,<br/>
Relacionamento com o cliente

</body>
</html>
```

### **Tecnologia**

O conector utiliza [Freemarker](https://freemarker.apache.org/docs/dgui_template_exp.html) para geração de conteúdo dinâmico.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.digibee.com/documentation/connectors-and-triggers/pt-br/connectors/web-protocols/email-v2.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
