Bem-vindo ao último dia da nossa série 12 Dias de DigitalOcean! Chegamos longe, construindo um Serviço de Processamento de Recibos Baseado em Email que extrai detalhes de recibos do Postmark usando o Agente GenAI da DigitalOcean, armazena com segurança anexos no DigitalOcean Spaces, e salva os dados extraídos no Google Sheets.
Hoje, vamos adicionar o toque final—enviando e-mails de confirmação de volta ao remetente com os detalhes do recibo, links dos anexos, e um link para a Planilha do Google. Este passo final conecta tudo, garantindo que os usuários recebam um feedback imediato de que seus recibos foram processados com sucesso.
🚀 O Que Você Vai Aprender
No final deste tutorial, você saberá como:
- Usar a API Resend para enviar e-mails de confirmação programaticamente.
- Gerencie com segurança credenciais sensíveis usando variáveis de ambiente.
- Formate e envie e-mails transacionais com detalhes do recibo, links de anexos e URLs de planilhas.
- Teste e solucione problemas em um fluxo de trabalho completo de processamento de e-mails.
🛠 O que você vai precisar
Se você deseja acompanhar a construção, presumimos que você seguiu o Dia 11: Salvar Dados de Recibo e Anexos no Google Sheets e já possui:
- Um aplicativo Flask implantado para processar e-mails de recibo.
- Integração do Google Sheets e DigitalOcean Spaces configurados.
Se você está apenas interessado em aprender como integrar o Resend para enviar e-mails de confirmação, você vai precisar de:
- Uma conta Resend: Cadastre-se em Resend.
- Uma chave de API: Gere-a no seu painel Resend.
Passo 1: Criar uma Conta no Resend e Obter a Chave da API
Para enviar e-mails programaticamente, vamos usar o Resend, uma API amigável para desenvolvedores para envio de e-mails transacionais. Ele simplifica o envio de e-mails para que você não precise lidar com a configuração de um servidor de e-mail, gerenciamento de configurações SMTP ou se preocupar com filtros de spam.
-
Primeiro, acesse o Resend e crie uma conta gratuita. Após fazer login, vá para a seção de Chaves da API no painel e gere uma nova chave da API.
-
Dê à sua chave da API um nome descritivo, como
Aplicativo Processador de Recibos
, e defina sua permissão paraAcesso Total
. -
Copie a Chave da API: Sua chave de API será mostrada apenas uma vez – copie-a e mantenha-a segura. Você precisará dela na próxima etapa para autenticar seu aplicativo com o Resend.
Passo 2: Atualize suas Variáveis de Ambiente
Agora que temos a chave da API do Resend, vamos salvá-la como uma variável de ambiente no DigitalOcean, assim como temos feito ao longo desta série.
Para a integração com o Resend, precisamos salvar duas variáveis de ambiente:
RESEND_API_KEY
: A chave da API que você gerou no Passo 1, que autentica seu aplicativo com o Resend.RESEND_EMAIL_FROM
: O endereço de e-mail do remetente que você usará para enviar e-mails de confirmação. Este deve ser um endereço verificado em sua conta do Resend.
Para adicionar essas variáveis, siga estes passos:
- Vá para o painel da sua Plataforma de Aplicativos DigitalOcean, encontre seu aplicativo Flask e acesse a guia Configurações. Em Variáveis de Ambiente, adicione as duas variáveis:
-
Chave:
RESEND_API_KEY
- Valor: Cole a chave da API que você gerou no Passo 1.
-
Chave:
RESEND_EMAIL_FROM
- Valor: Insira um endereço de e-mail do remetente verificado da sua conta Resend.
-
-
Salve suas alterações para disponibilizar a chave da API do Resend para o seu aplicativo Flask, que atualizaremos em seguida.
Passo 3: Instale a Biblioteca Resend Python
Em seguida, vamos instalar a biblioteca Resend Python para lidar com a API para nós. Ela mantém seu código limpo e evita lidar com solicitações HTTP brutas. Execute isso no seu terminal:
Passo 4: Atualize requirements.txt
Em vez de editar requirements.txt
manualmente, use pip freeze
para listar todas as dependências instaladas com versões exatas. Execute isso:
Isso atualiza requirements.txt
com tudo o que seu aplicativo precisa, incluindo resend
.
Passo 5: Escreva a Função para Enviar E-mails
Agora é hora de adicionar a lógica para enviar e-mails de confirmação. Pense nisso como enviar um e-mail para um amigo avisando que o pacote dele chegou – só que aqui, é para recibos.
Vamos escrever uma função send_confirmation_email
que recebe o e-mail do destinatário, detalhes do recibo, links de anexo e URL da Planilha do Google. Usando o Resend, ele irá formatar isso em um e-mail e enviá-lo. Aqui está a função:
Passo 5: Implementar no DigitalOcean
Para implementar o aplicativo Flask atualizado, siga os passos do Dia 7: Construindo e Implementando o Processador de Recibos Baseado em E-mail. Aqui está um resumo rápido:
-
Envie Seu Código Atualizado para o GitHub: Após fazer as alterações necessárias no seu aplicativo Flask, faça commit e envie o código atualizado para o GitHub. Isso irá acionar uma implantação automática na Plataforma de Aplicativos do DigitalOcean.
-
Monitore a Implantação: Você pode acompanhar o progresso na seção Implantações do painel do seu aplicativo.
-
Verifique Sua Implantação: Após a conclusão da implantação, acesse a URL pública do seu aplicativo e teste sua funcionalidade. Você também pode verificar os logs de runtime no painel para confirmar que o aplicativo iniciou com sucesso.
-
Verifique os Logs de Runtime: Se algo não estiver funcionando como esperado, use a aba Logs de Runtime no painel da App Platform para depurar problemas de runtime. Procure por quaisquer erros relacionados à API Resend ou outros componentes do aplicativo.
Passo 5: Testar Todo o Fluxo de Trabalho
Agora que seu aplicativo está totalmente configurado e pronto, é hora de testar todo o fluxo de trabalho. Vamos garantir que o corpo do email seja processado, os anexos sejam decodificados e enviados para o DigitalOcean Spaces, os detalhes do recibo e URLs de anexos sejam salvos no Google Sheets, e um email de confirmação seja enviado para o remetente.
Aqui está como você pode testar passo a passo:
-
Enviar um Email de Teste: Envie um email para o Postmark com um corpo de texto e um anexo. Se você não tem certeza de como configurar o Postmark, confira Dia 8: Conectando o Postmark ao Seu Aplicativo Flask, onde mostramos como configurar o Postmark para encaminhar emails para o seu aplicativo.
-
Verificar JSON de Atividade do Postmark: No painel do Postmark, acesse a aba Atividade. Localize o email que você enviou e certifique-se de que o payload JSON inclui o corpo do texto e os dados do anexo codificados em Base64. Isso confirma que o Postmark está encaminhando corretamente os dados do email para o seu aplicativo, conforme configuramos no Dia 8.
-
Monitorar os Logs: Verifique os logs de tempo de execução no painel da Plataforma de Aplicativos DigitalOcean para garantir que o aplicativo processe a carga JSON. Você deve ver logs mostrando que os detalhes do recibo foram extraídos e os anexos foram enviados para DigitalOcean Spaces. Você pode acessar os logs de tempo de execução na guia Logs do painel da Plataforma de Aplicativos DigitalOcean. Se você não estiver familiarizado com os logs da DigitalOcean, exploramos isso durante o Dia 9: Automatizando a Análise de Recibos com o Agente GenAI da DigitalOcean.
-
Verificar o Upload de Espaços: Visite seu Espaço DigitalOcean para confirmar que os arquivos foram enviados com sucesso. Você deverá ver os anexos em seu bucket conforme configurado no Dia 10: Armazenando Anexos no Espaço DigitalOcean. Se tudo ocorreu como esperado, os URLs dos anexos estarão acessíveis.
-
Verificar as Planilhas do Google: Abra sua Planilha do Google e confirme que uma nova linha com detalhes do recibo e URLs dos anexos foi adicionada, conforme configuramos no Dia 11: Salvando Detalhes do Recibo nas Planilhas do Google. A linha deve incluir:
- Fornecedor, valor, moeda e data extraídos do corpo do e-mail.
- URLs separados por vírgulas para os anexos enviados na última coluna.
-
Verifique o E-mail de Confirmação: Por fim, verifique a caixa de entrada do endereço de e-mail do remetente para garantir que o e-mail de confirmação tenha sido recebido. Este e-mail deve conter:
- Os detalhes do recibo extraídos (fornecedor, valor, moeda e data).
- Links para os anexos enviados no DigitalOcean Spaces.
- Um link para a Planilha do Google onde os dados do recibo estão registrados.
Resolução de Problemas
Se o fluxo de trabalho não funcionar como esperado, aqui estão algumas etapas de solução de problemas a seguir:
-
Verifique o Painel de Reenvio de E-mails para Erros: Visite o painel de reenvio para ver se ocorreram erros ao enviar o e-mail de confirmação.
-
Verifique as Variáveis de Ambiente: Certifique-se de que a chave da API (
RESEND_API_KEY
) e o e-mail do remetente (RESEND_EMAIL_FROM
) estejam configurados corretamente em suas variáveis de ambiente no painel da Plataforma de Aplicativos da DigitalOcean. -
Inspeccione os Logs de Tempo de Execução da DigitalOcean: Abra a guia de Logs de Tempo de Execução no painel da Plataforma de Aplicativos da DigitalOcean para verificar erros ao processar o e-mail ou ao enviar anexos. Esses logs podem fornecer insights úteis, especialmente para interações com Postmark ou Resend.
-
Revise a Atividade do Postmark: Na guia de Atividade do Postmark, confirme se o e-mail de teste foi encaminhado corretamente para o seu aplicativo Flask. Se houver problemas, o Postmark exibirá erros relacionados ao encaminhamento ou problemas de configuração.
🎁 Conclusão
Parabéns! Você concluiu com sucesso a série 12 Dias de DigitalOcean e construiu um Serviço de Processamento de Recibos Baseado em E-mail totalmente funcional.
Hoje, você:
- Integrou a API do Resend para enviar e-mails transacionais.
- Configurou variáveis de ambiente para gerenciar com segurança credenciais sensíveis.
- Enviou e-mails de confirmação com detalhes do recibo, links de anexos e uma URL de planilha.
- Testou todo o fluxo de trabalho, desde o envio do e-mail até a confirmação final.
Ao adicionar emails de confirmação, você concluiu um projeto que processa emails, extrai detalhes, armazena anexos e mantém tudo organizado no Google Sheets. É amigável ao usuário, prático e pronto para resolver problemas do mundo real.
📚 Os 12 Dias da DigitalOcean
Este marca o fim da série Os 12 Dias da DigitalOcean. Ao longo dos últimos 12 dias, construímos duas aplicações do mundo real, passo a passo. No caminho, você utilizou ferramentas como Funções Sem Servidor da DigitalOcean, Plataforma de Aplicativos, Armazenamento de Objetos Spaces, PostgreSQL, GenAI da DigitalOcean, Twilio, API do Google Sheets, Postmark, PaperTrail e Resend. Cada peça se uniu para formar algo maior do que a soma de suas partes.
Aqui está um resumo rápido do que você construiu:
🎂 Dias 1–6: Construir um Serviço de Lembrete de Aniversário
Este aplicativo rastreia aniversários e envia lembretes por SMS automaticamente. É leve, sem servidor e fácil de manter.
- Dia 1: Configure um Banco de Dados PostgreSQL
Crie um banco de dados para armazenar detalhes de contato. - Dia 2: Conecte-se ao PostgreSQL com Python
Conecte-se de forma segura ao seu banco de dados e obtenha dados. - Dia 3: Verifique Aniversários e Envie Notificações por SMS
Use o Twilio para notificar os usuários sobre os próximos aniversários. - Dia 4: Implante no DigitalOcean Functions
Implante seu aplicativo na nuvem com o DigitalOcean Functions. - Dia 5: Automatize Lembretes Diários com Gatilhos
Agende lembretes para serem executados automaticamente todos os dias. - Dia 6: Configurar o Registro Externo
Monitore e resolva problemas no seu aplicativo com o Papertrail.
Ao chegar no Dia 6, você terá um serviço totalmente automatizado em execução na nuvem. Simplesmente funciona.
📧 Dias 7–12: Construir um Processador de Recibos por E-mail
Este aplicativo lida com recibos enviados por e-mail, extrai os detalhes necessários e organiza tudo em um banco de dados.
- Dia 7: Construir e Implantar um Aplicativo Flask
Configure um aplicativo leve para processar e-mails de recibos. - Dia 8: Integrar o Postmark para Processamento de E-mails
Encaminhe e-mails para o seu aplicativo para processamento. - Dia 9: Extrair e Limpar Dados com o GenAI da DigitalOcean
Use o GenAI para extrair dados estruturados do conteúdo de e-mails. - Dia 10: Configurar o DigitalOcean Spaces para Armazenamento Seguro
Armazene anexos de e-mail de forma segura com armazenamento de objetos. - Dia 11: Salvar Dados de Recibos no Google Sheets
Organize dados estruturados em uma planilha para fácil acesso. - Dia 12: Enviar E-mails de Confirmação
Notifique os usuários sobre recibos processados com sucesso.
Até o Dia 12, você construiu uma ferramenta completa que lida com recibos de ponta a ponta.
O Que Você Aprendeu
- Armazenando e Gerenciando Dados: Você usou o PostgreSQL para armazenamento de dados estruturados e o Google Sheets para registro de dados fácil e compartilhável.
- Automatização de Fluxos de Trabalho: Com Funções do DigitalOcean e agendamento de gatilhos, você automatizou processos e fez com que seus aplicativos funcionassem como um relógio.
- Adicionando Inteligência aos Seus Aplicativos: Ao integrar GenAI da DigitalOcean, você trouxe extração inteligente de dados e organização para seus fluxos de trabalho, tornando seus aplicativos mais inteligentes e capazes.
- Manuseio Seguro de Arquivos: Você trabalhou com Spaces da DigitalOcean para armazenar e gerenciar arquivos de forma confiável e escalável.
- Melhorando Aplicativos com APIs: APIs como Twilio, Postmark e Resend trouxeram funcionalidades como notificações SMS, encaminhamento de e-mails e e-mails de confirmação para seus aplicativos.
- Depuração e Monitoramento: Usando ferramentas como o Papertrail, você aprendeu a depurar e monitorar seus aplicativos de forma eficaz, mantendo-os funcionando sem problemas.
O que vem a seguir
Isso é apenas o começo – o que você aprendeu aqui pode ser aplicado a inúmeros outros projetos. Aqui estão algumas maneiras de continuar:
- Participe da conversa no Discord da DigitalOcean para se conectar com outros desenvolvedores, compartilhar o que você construiu e se inspirar.
- Explore mais em nossa biblioteca de tutoriais para mais ideias e projetos.
Se você seguir em frente, adoraria ver o que você cria – sinta-se à vontade para compartilhar seu progresso ou feedback comigo no Twitter.
Mantenha simples. Construa algo útil. Feliz desenvolvimento! 🚀
Source:
https://www.digitalocean.com/community/tutorials/sending-confirmation-emails-with-resend