Pular para o conteúdo principal
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: Arquitetura
  1. Um email é enviado para o seu domínio (por exemplo, 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.

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. SES Email Receiving Crie um Rule Set se você não tiver um. SES Rule Sets Adicione uma nova regra:
  • Recipients → Adicione seu email de entrada (por exemplo, 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.
SES Publish to SNS 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:
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. SES Create Subscription Defina:
  • Protocol: HTTPS
  • Endpoint: O seu endpoint de ingress de email do AirysChat https://airyschat.example.com/rails/action_mailbox/ses/inbound_emails
SES Create Subscription 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.