# Guia operacional de notificações — V5

## 1. Princípio de segurança

A plataforma nasce com o envio automático desligado. A ativação recomendada é gradual:

```text
Backend de terminal
→ SMTP em modo de teste
→ Testes com dados fictícios
→ Revisão dos modelos
→ Envio manual controlado
→ Automação em modo de teste
→ Produção
```

## 2. Configuração global

Em **Sistema → Configuração**, preencher:

- email da empresa;
- email de resposta;
- email interno para alertas;
- destinatário de testes;
- antecedências de 30, 15 e 7 dias;
- máximo de tentativas;
- intervalo base de repetição;
- preparação automática;
- envio automático.

As credenciais SMTP continuam exclusivamente no `.env`.

## 3. Modelos de mensagem

Cada modelo possui:

- assunto;
- corpo de texto;
- corpo HTML;
- autorização para envio automático;
- opção para incluir contactos financeiros.

Variáveis suportadas:

```text
{cliente}
{servico}
{dominio}
{data_renovacao}
{valor}
{metodo_pagamento}
{empresa}
{email_empresa}
{telefone_empresa}
{mbway}
{iban}
```

## 4. Destinatários

O email principal do cliente é usado como destinatário. Os contactos marcados com **Recebe avisos financeiros** são adicionados em CC, exceto em modo de teste, onde todas as cópias são removidas por segurança.

## 5. Estados

```text
Rascunho
Agendado
A enviar
Enviado
Falhou
Cancelado
Bloqueado
```

## 6. Modos de entrega

```text
Teste seguro
Produção
Terminal / desenvolvimento
Interno
```

## 7. Avisos de renovação

O ciclo diário verifica:

- primeiro aviso;
- segundo aviso;
- aviso final;
- dia do vencimento;
- serviço vencido.

A chave de duplicação impede criar a mesma notificação automática duas vezes para a mesma renovação, modelo e destinatário.

## 8. Falhas

Cada tentativa guarda:

- hora;
- destinatário usado;
- backend;
- duração;
- resultado;
- mensagem de erro;
- utilizador que iniciou a ação.

As falhas elegíveis são repetidas automaticamente. Ao atingir o limite, é criada uma tarefa interna.

## 9. Bloqueios

Adicionar um endereço em **Emails bloqueados** quando:

- o domínio não existe;
- a caixa foi encerrada;
- o servidor devolve permanentemente a mensagem;
- o cliente pediu para não usar aquele contacto;
- existe risco de segurança.

O bloqueio é aplicado antes de contactar o backend de email.

## 10. Centro de comunicações

A página apresenta:

- rascunhos;
- fila agendada;
- falhas;
- enviados nos últimos 30 dias;
- avisos de configuração;
- ações manuais;
- teste de email;
- tentativas recentes;
- tarefas do Celery Beat.

## 11. Processo recomendado antes de produção

1. Configurar o SMTP.
2. Definir o destinatário de testes.
3. Executar `test_email_configuration`.
4. Rever a versão em texto e HTML.
5. Preparar avisos com dados fictícios.
6. Processar manualmente a fila.
7. Confirmar o histórico e destinatário original.
8. Iniciar Redis, worker e beat.
9. Ativar envio automático mantendo modo de teste.
10. Observar pelo menos um ciclo completo.
11. Desligar o modo de teste.
