# Acesso aos e-mails de toda a organização

Para ler os e-mails e escrever rascunhos, o assistente precisa de acesso à
caixa de e-mail. O jeito mais simples para uma organização com várias caixas de
e-mail é um **registro de aplicativo**: um único acesso para a organização
inteira, sem login por caixa de e-mail. Os registros ficam em Organização →
**Integrações**, no cartão **Acesso aos e-mails de toda a organização**. Quem os
gerencia são os proprietários e os administradores da organização.

Para uma única caixa de e-mail, funciona também uma **conta conectada** (o botão
Conectar o Outlook / Conectar o Gmail) ou um **login IMAP** – veja o guia
[Adicionar e conectar uma caixa de e-mail](/pt/admin/adding-a-mailbox).

## Microsoft 365 (Entra)

Para configurar, você precisa de direitos de administrador no Entra ID.

1. https://entra.microsoft.com → Identity → Applications → **App registrations**
   → **New registration**.
2. Dê o nome `draften`, por exemplo, escolha **Accounts in this organizational
   directory only**, sem redirect URI → **Register**.
3. Em **Overview**, anote o **Application (client) ID** e o **Directory
   (tenant) ID**.
4. **Certificates & secrets → New client secret** (no máximo 24 meses). O valor
   é mostrado só uma vez; anote também a data de validade.
5. **API permissions → Add a permission → Microsoft Graph → Application
   permissions**: `Mail.ReadWrite` e `MailboxSettings.ReadWrite` (a segunda só
   para a cor da categoria do Outlook).
6. **Grant admin consent** – marcas verdes nas duas linhas.

**Não adicione `Mail.Send`.** O draften não envia nada e, sem essa permissão,
nem consegue – e é exatamente essa a ideia.

Depois, no draften, escolha **Microsoft 365 (Entra)** no cartão de registros,
preencha um nome, o Directory (tenant) ID, o Application (client) ID, o valor do
segredo (não o ID dele) e a validade dele, e clique em **Adicionar registro**.

## Google Workspace

1. Ative a **Gmail API** no projeto do Google Cloud do seu Workspace.
2. Crie uma **conta de serviço** e baixe a **chave JSON** dela (IAM → Service
   accounts → Keys).
3. No Google Admin → Security → Access and data control → API controls →
   **Domain-wide delegation**, autorize o client ID numérico da conta de serviço
   para o escopo `https://www.googleapis.com/auth/gmail.modify`.

No draften, escolha **Google Workspace**, carregue o arquivo da chave e adicione
o registro. Ele é guardado criptografado; só o e-mail e o client ID da conta são
exibidos.

## Atribuição às caixas de e-mail

Um registro sozinho não conecta nada. O **proprietário da organização** o
atribui a cada caixa de e-mail na página dela: Acesso aos e-mails → **Usar** →
**Aplicar**, e executa **Testar a conexão**. O registro mostra quais caixas de
e-mail o usam. Com a opção [Caixa de e-mail automática](/pt/admin/member-sign-in)
ativada, uma nova caixa de e-mail é vinculada sozinha quando há exatamente um
registro ativo para o sistema de e-mail dela.

## Validade do segredo

O segredo de um registro do Entra tem validade limitada. Antes que ele expire,
crie um novo no Entra e clique em **Novo segredo** no registro, no draften.
Quando um segredo expira, as caixas de e-mail se desconectam (`invalid_client`)
e os assistentes as pulam; depois da troca, execute o teste de conexão.

## Restringir o acesso tecnicamente (opcional)

Um registro do Microsoft 365 alcança todas as caixas de e-mail da organização;
quem faz a guarda é o draften (um membro não consegue adicionar uma caixa de
e-mail; o assistente nunca envia nem apaga). Quem quiser também uma barreira
técnica restringe o aplicativo a um grupo de segurança com uma
`ApplicationAccessPolicy` no Exchange Online:

```
Connect-ExchangeOnline -UserPrincipalName admin@<tenant>.onmicrosoft.com
New-DistributionGroup -Name "draften - allowed mailboxes" -Alias draften-mailboxes -Type Security -Members mailbox@company.com
New-ApplicationAccessPolicy -AppId <Application (client) ID> -PolicyScopeGroupId draften-mailboxes@company.com -AccessRight RestrictAccess -Description "draften: allowed mailboxes only"
Test-ApplicationAccessPolicy -Identity mailbox@company.com -AppId <Application (client) ID>
```

Cada caixa de e-mail adicional precisa então ser incluída no grupo também, senão
o teste de conexão dela falha com 403 (`AppOnly AccessPolicy`). A política pode
levar várias horas para entrar em vigor.
