> ## Documentation Index
> Fetch the complete documentation index at: https://docs.airys.chat/llms.txt
> Use this file to discover all available pages before exploring further.

# Configurando o Amazon SES como um Provedor de Ingress para o AirysChat

> Guia para configurar a continuidade da conversa, emails de entrada com o Amazon SES

Este guia explica como configurar o Amazon SES como o provedor de email de entrada (ingress) para a sua instalação do AirysChat auto-hospedado. Se você planeja usar a opção de encaminhamento de email do AirysChat e deseja que o SES manipule a entrega de emails de entrada no AirysChat, esta documentação é para você.

### Para quem é isso?

Esta configuração é destinada a:

* Equipes executando o AirysChat auto-hospedado.
* Usuários que desejam usar o Amazon SES para receber emails de entrada.
* Workspaces que desejam configurar regras de encaminhamento em vez de usar conexões IMAP/OAuth para trazer emails para o AirysChat.

Se você estiver usando o AirysChat Cloud, não precisa desta configuração.

### Arquitetura

Em alto nível, o fluxo é assim:

<img src="https://mintcdn.com/airys/1FWn-RJM-8Ky_sbQ/self-hosted/configuration/features/email-channel/images/ses-ingress-architecture.png?fit=max&auto=format&n=1FWn-RJM-8Ky_sbQ&q=85&s=4e027f6046c16198db15d0294fbe0e33" alt="Arquitetura" width="773" height="193" data-path="self-hosted/configuration/features/email-channel/images/ses-ingress-architecture.png" />

1. Um email é enviado para o seu domínio (por exemplo, [support@yourdomain.com](mailto:support@yourdomain.com)).
2. O Amazon SES recebe o email.
3. O SES encaminha a mensagem para um Tópico SNS.
4. O SNS publica o payload da mensagem em um endpoint de ingress de email do AirysChat.
5. O AirysChat processa o payload e cria/atualiza uma conversa.

### Pré-requisitos

Antes de começar, você deve ter:

* Acesso ao AWS SES, SNS, Route53 (ou seu provedor de DNS).
* Uma instalação do AirysChat auto-hospedado acessível por HTTPS.

### Passo 1: Verifique o Seu Domínio no Amazon SES

O Amazon SES deve verificar se você é o dono do domínio antes que ele possa receber emails.

1. Faça login no AWS Console → SES → Identities.
2. Clique em Create Identity.
3. Escolha Domain.
4. Insira o domínio para o qual você deseja receber email.
5. O Amazon SES mostrará os registros DNS que você deve adicionar:
   * Registros DKIM (CNAME)
   * Registro SPF (TXT)
   * Registro DMARC (TXT) (opcional, mas recomendado)
6. Adicione todos os registros ao seu provedor de DNS.
7. Aguarde o status da identidade se tornar verified.

### Passo 2: Configure os Registros MX para Rotear Email para o SES

O SES deve se tornar o manipulador de email de entrada do seu domínio.

1. No SES, abra Configuration → Email Receiving.
2. Localize o valor do registro MX da sua região (exemplo: 10 inbound-smtp.us-east-1.amazonaws.com).
3. Vá para o seu provedor de DNS.
4. Adicione um registro MX:
   * Priority: 10
   * Value: `inbound-smtp.<region>.amazonaws.com`

Quando isso estiver definido, o seu domínio começará a rotear o email de entrada para o SES. Se você tiver alguma dúvida sobre como configurar isso, leia mais na [documentação do AWS SES](https://docs.aws.amazon.com/ses/latest/dg/receiving-email-setting-up.html).

### Passo 3: Configure o SES para Publicar Emails de Entrada no SNS

O AirysChat lê mensagens de entrada por meio de notificações SNS.

Vá para SES → Email Receiving → Rule Sets.

<img src="https://mintcdn.com/airys/1FWn-RJM-8Ky_sbQ/self-hosted/configuration/features/email-channel/images/email-receiving.png?fit=max&auto=format&n=1FWn-RJM-8Ky_sbQ&q=85&s=368fe1a72dff634455cb31760352243e" alt="SES Email Receiving" width="2436" height="946" data-path="self-hosted/configuration/features/email-channel/images/email-receiving.png" />

Crie um Rule Set se você não tiver um.

<img src="https://mintcdn.com/airys/1FWn-RJM-8Ky_sbQ/self-hosted/configuration/features/email-channel/images/rule-settings.png?fit=max&auto=format&n=1FWn-RJM-8Ky_sbQ&q=85&s=9ef3929269701b4d65e4861613fc74aa" alt="SES Rule Sets" width="3018" height="1236" data-path="self-hosted/configuration/features/email-channel/images/rule-settings.png" />

Adicione uma nova regra:

* Recipients → Adicione seu email de entrada (por exemplo, [support@yourdomain.com](mailto:support@yourdomain.com)) ou ignore este campo já que ele encaminharia todos os emails para o SNS (o que é melhor se você tiver mais de um canal de email)
* Actions → Publish to Amazon SNS topic
* Selecione o seu tópico SNS.
* Certifique-se de selecionar o Encoding como UTF-8.

<img src="https://mintcdn.com/airys/1FWn-RJM-8Ky_sbQ/self-hosted/configuration/features/email-channel/images/publish-to-sns.png?fit=max&auto=format&n=1FWn-RJM-8Ky_sbQ&q=85&s=cd6e3a718f2ccc5fd0d4b70396df378f" alt="SES Publish to SNS" width="2992" height="1202" data-path="self-hosted/configuration/features/email-channel/images/publish-to-sns.png" />

Salve e ative a regra.

Nota: Você não precisa ativar a Segurança da Camada de Transporte (TLS) ou a verificação de spam e vírus para esta configuração. Agora o SES publicará cada evento de email de entrada no seu tópico SNS.

### Passo 4: Configure as Variáveis de Ambiente do AirysChat

Antes de criar a assinatura do SNS, você deve configurar duas variáveis de ambiente na sua instalação do AirysChat:

```bash theme={null}
RAILS_INBOUND_EMAIL_SERVICE=ses

# ARN do tópico SNS para o ActionMailbox (formato: arn:aws:sns:region:account-id:topic-name)
# Configure apenas após você criar o tópico SNS na AWS
ACTION_MAILBOX_SES_SNS_TOPIC=
```

Por que isso importa:
O AirysChat precisa saber que o SES será usado para email de entrada. O AirysChat deve estar pronto para validar o tópico SNS assim que a assinatura for criada.

### Passo 5: Crie a Assinatura SNS para Encaminhar para o AirysChat

O SNS precisa enviar o payload de email diretamente para o AirysChat.

Vá para SNS → Topics. Abra o tópico que você criou. Clique em Create Subscription.

<img src="https://mintcdn.com/airys/1FWn-RJM-8Ky_sbQ/self-hosted/configuration/features/email-channel/images/create-subscription.png?fit=max&auto=format&n=1FWn-RJM-8Ky_sbQ&q=85&s=4438613b2a50143de6292782b59d2438" alt="SES Create Subscription" width="3004" height="1252" data-path="self-hosted/configuration/features/email-channel/images/create-subscription.png" />

Defina:

* Protocol: HTTPS
* Endpoint: O seu endpoint de ingress de email do AirysChat `https://airyschat.example.com/rails/action_mailbox/ses/inbound_emails`

<img src="https://mintcdn.com/airys/1FWn-RJM-8Ky_sbQ/self-hosted/configuration/features/email-channel/images/https-post.png?fit=max&auto=format&n=1FWn-RJM-8Ky_sbQ&q=85&s=902776d1c315ab72370e08677f9f7a26" alt="SES Create Subscription" width="3004" height="1478" data-path="self-hosted/configuration/features/email-channel/images/https-post.png" />

Salve.

Nota: O SNS enviará uma requisição de confirmação. O AirysChat confirmará a assinatura automaticamente.

### Passo 6: Adicione o Canal de Email no AirysChat

1. Vá para a sua conta do AirysChat. Settings → Inboxes → Add Inbox.
2. Escolha Email -> Other Providers.
3. Use qualquer endereço de email do domínio que está configurado no SES.

Depois disso, você deverá ver os emails de entrada na sua caixa de entrada.

### Solução de Problemas

Emails não aparecendo no AirysChat:

* Verifique SES → SNS → Subscription delivery logs.
* Verifique o status da assinatura do SNS.
* Verifique os logs do AirysChat por quaisquer erros.
* Certifique-se de que o servidor do AirysChat está acessível publicamente.
* Verifique se os registros MX foram propagados.

Assinatura do SNS não confirmada:

* Certifique-se de que o servidor do AirysChat está acessível publicamente.
* Verifique o horário do sistema e os certificados SSL no seu servidor. Se você estiver testando isso em ambiente local, pode usar ferramentas como ngrok para expor o seu servidor AirysChat à internet. Certifique-se de que está usando `openssl<=3.5`.
