Bem-vindo ao último dia da nossa série 12 Dias de DigitalOcean! Nós percorremos um longo caminho, construindo um Serviço de Processamento de Recibos por 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 emails de confirmação de volta ao remetente com os detalhes do recibo, links para os 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ê Aprenderá
Ao final deste tutorial, você saberá como:
- Usar a API Resend para enviar emails 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 um fluxo de trabalho completo de processamento de e-mails.
🛠 O Que Você Precisará
Se você deseja acompanhar, presumimos que você seguiu Dia 11: Salve Dados de Recibo e Anexos no Google Sheets e já tem:
- Um app Flask implantado para processar e-mails de recibo.
- Google Sheets e integração com DigitalOcean Spaces configurados.
Se você está apenas interessado em aprender como integrar Resend para enviar e-mails de confirmação, você precisará:
- Uma conta Resend: Inscreva-se em Resend.
- Uma chave API: Gere-a a partir do seu painel do Resend.
Passo 1: Crie uma Conta no Resend e Obtenha a Chave da API
Para enviar e-mails programaticamente, usaremos Resend, uma API amigável para desenvolvedores que permite o envio de e-mails transacionais. Ela simplifica o envio de e-mails, para que você não precise se preocupar em configurar um servidor de e-mails, gerenciar configurações SMTP ou se preocupar com filtros de spam.
-
Primeiro, acesse Resend e inscreva-se para uma conta gratuita. Uma vez logado, navegue até a seção Chaves da API do 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 comoAcesso Total
. -
Copie a Chave da API: Sua chave da 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 fizemos 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 do DigitalOcean App Platform, encontre seu aplicativo Flask e navegue até a aba Configurações. Em Variáveis de Ambiente, adicione as duas variáveis:
-
Chave:
RESEND_API_KEY
- Valor: Cole a chave API que você gerou na Etapa 1.
-
Chave:
RESEND_EMAIL_FROM
- Valor: Insira um endereço de e-mail de remetente verificado da sua conta Resend.
-
-
Salve suas alterações para disponibilizar a chave API Resend para seu aplicativo Flask, que iremos atualizar a seguir.
Passo 3: Instale a Biblioteca Resend para Python
Em seguida, vamos instalar a biblioteca Resend para Python para gerenciar a API para nós. Isso 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 Emails
Agora é hora de adicionar a lógica para enviar emails de confirmação. Pense nisso como enviar um email para um amigo para informá-lo que seu pacote chegou—só que aqui, é para recibos.
Vamos escrever uma função send_confirmation_email
que recebe o email do destinatário, detalhes do recibo, links de anexos e URL da Planilha do Google. Usando o Resend, ela irá formatar isso em um email e enviá-lo. Aqui está a função:
Passo 5: Implementar no DigitalOcean
Para implementar a aplicação Flask atualizada, siga os passos do Dia 7: Construindo e Implementando o Processador de Recibos Baseado em Email. Aqui está um resumo rápido:
-
Envie Seu Código Atualizado para o GitHub: Após fazer as mudanças necessárias na sua aplicação Flask, faça commit e envie o código atualizado para o GitHub. Isso irá acionar uma implementaçã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, navegue até 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 foi iniciado 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 e-mail seja processado, os anexos sejam decodificados e carregados no DigitalOcean Spaces, os detalhes do recibo e as URLs dos anexos sejam salvos no Google Sheets, e um e-mail de confirmação seja enviado ao remetente.
Aqui está como você pode testar passo a passo:
-
Enviar um E-mail de Teste: Envie um e-mail para o Postmark com um corpo de texto e um anexo. Se você não tiver certeza de como configurar o Postmark, confira Dia 8: Conectando o Postmark ao Seu App Flask, onde mostramos como configurar o Postmark para encaminhar e-mails para seu aplicativo.
-
Verificar JSON de Atividade do Postmark: No painel do Postmark, vá para a aba Atividade. Localize o e-mail que você enviou e verifique se 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 e-mail para o seu aplicativo, conforme configurado no Dia 8.
-
Monitorar os Registos: Verifique os registos em tempo de execução no painel da Plataforma de Aplicativos DigitalOcean para garantir que a aplicação processe a carga JSON. Deverá ver registos que mostrem que os detalhes do recibo foram extraídos e os anexos foram carregados para os Espaços da DigitalOcean. Pode aceder aos registos em tempo de execução na guia Registos do painel da Plataforma de Aplicativos DigitalOcean. Se não estiver familiarizado com os registos DigitalOcean, exploramos isso durante o Dia 9: Automatização da Análise de Recibos com o Agente GenAI da DigitalOcean.
-
Verificar o Upload no Spaces: Visite o seu Espaço DigitalOcean para confirmar que os arquivos foram enviados com sucesso. Você deve ver os anexos no seu bucket conforme configurado no Dia 10: Armazenando Anexos no DigitalOcean Spaces. Se tudo correu como esperado, os URLs dos anexos estarão acessíveis.
-
Verificar o Google Sheets: Abra a sua Planilha do Google e confirme que uma nova linha com detalhes do recibo e URLs de anexos foi adicionada, conforme configurado no Dia 11: Salvando Detalhes do Recibo no Google Sheets. A linha deve incluir:
- Fornecedor, valor, moeda e data extraídos do corpo do e-mail.
- URLs separados por vírgula para os anexos enviados na última coluna.
-
Verificar 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 são registrados.
Resolução de Problemas
Se o fluxo de trabalho não funcionar conforme o esperado, siga alguns passos de resolução de problemas:
-
Verifique o Painel de Reenvio de Emails em busca de Erros: Acesse o painel de reenvio para ver se ocorreram erros ao enviar o email de confirmação.
-
Verifique as Variáveis de Ambiente: Certifique-se de que a chave da API (
RESEND_API_KEY
) e o email do remetente (RESEND_EMAIL_FROM
) estão configurados corretamente em suas variáveis de ambiente no painel da Plataforma de Aplicativos da DigitalOcean. -
Inspeccione os Registos de Tempo de Execução da DigitalOcean: Abra a guia de Registos de Tempo de Execução no painel da Plataforma de Aplicativos da DigitalOcean para verificar erros durante o processamento do email ou ao enviar anexos. Estes registos podem fornecer informações úteis, especialmente para interações com o Postmark ou o Reenvio.
-
Revisar Atividade do Postmark: Na aba Atividade do Postmark, confirme se o e-mail de teste foi devidamente encaminhado para o seu aplicativo Flask. Se houver algum problema, o Postmark exibirá erros relacionados a encaminhamentos ou problemas de configuração.
🎁 Conclusão
Parabéns! Você completou 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ê:
- Integrau a API Resend para enviar e-mails transacionais.
- Configurou variáveis de ambiente para gerenciar de forma segura credenciais sensíveis.
- Enviou e-mails de confirmação com detalhes do recibo, links de anexos e uma URL de planilha.
- Testou o fluxo de trabalho completo desde a submissão do e-mail até a confirmação final.
Ao adicionar e-mails de confirmação, você finalizou um projeto que processa e-mails, extrai detalhes, armazena anexos e mantém tudo organizado no Google Sheets. É amigável, prático e pronto para resolver problemas do mundo real.
📚 Os 12 Dias do DigitalOcean
Isso marca o fim da série 12 Dias do DigitalOcean. Nos últimos 12 dias, construímos duas aplicações do mundo real, um passo de cada vez. Ao longo do caminho, você utilizou ferramentas como Funções Serverless do DigitalOcean, App Platform, Armazenamento de Objetos Spaces, PostgreSQL, DigitalOcean GenAI, Twilio, API do Google Sheets, Postmark, PaperTrail e Resend. Cada parte se uniu para formar algo maior do que a soma de suas partes.
Aqui está um rápido resumo do que você construiu:
🎂 Dias 1–6: Crie 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: Configurar um Banco de Dados PostgreSQL
Crie um banco de dados para armazenar detalhes de contato. - Dia 2: Conectar ao PostgreSQL com Python
Conecte-se ao seu banco de dados de forma segura e busque dados. - Dia 3: Verificar Aniversários e Enviar Notificações por SMS
Use o Twilio para notificar os usuários sobre aniversários próximos. - Dia 4: Implantar no DigitalOcean Functions
Implante seu aplicativo na nuvem com o DigitalOcean Functions. - Dia 5: Automatizar Lembretes Diários com Gatilhos
Agende lembretes para serem executados automaticamente todos os dias. - Dia 6: Configurar o Registro Externo
Monitore e resolva problemas do seu aplicativo com o Papertrail.
Até o Dia 6, você terá um serviço totalmente automatizado em execução na nuvem. Simplesmente funciona.
📧 Dias 7–12: Construir um Processador de Recibo 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 Implementar 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 do e-mail. - Dia 10: Configure o DigitalOcean Spaces para Armazenamento Seguro
Armazene anexos de e-mail de forma segura com armazenamento de objetos. - Dia 11: Salve Dados de Recibos no Google Sheets
Organize dados estruturados em uma planilha para fácil acesso. - Dia 12: Envie E-mails de Confirmação
Notifique os usuários sobre recibos processados com sucesso.
Até o Dia 12, você construiu uma ferramenta completa que gerencia recibos de ponta a ponta.
O Que Você Aprendeu
- Armazenamento e Gerenciamento de Dados: Você usou PostgreSQL para armazenamento de dados estruturados e Google Sheets para registro de dados fácil e compartilhável.
- Automatizando Fluxos de Trabalho: Com as Funções da DigitalOcean e gatilhos de agendamento, você automatizou processos e fez seus aplicativos funcionarem como um relógio.
- Adicionando Inteligência aos Seus Aplicativos: Ao integrar o GenAI da DigitalOcean, você trouxe extração e organização de dados inteligentes para seus fluxos de trabalho, tornando seus aplicativos mais inteligentes e capazes.
- Gerenciando Arquivos com Segurança: Você trabalhou com os Spaces da DigitalOcean para armazenar e gerenciar arquivos de forma confiável e escalável.
- Aprimorando 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 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ê acompanhar, adoraria ver o que você cria—sinta-se à vontade para compartilhar seu progresso ou feedback comigo no Twitter.
Mantenha simples. Construa algo útil. Boa construção! 🚀
Source:
https://www.digitalocean.com/community/tutorials/sending-confirmation-emails-with-resend