Welkom bij de laatste dag van onze serie 12 Dagen van DigitalOcean! We hebben een lange weg afgelegd, waarbij we een E-mailgebaseerde Bonverwerkingsdienst hebben gebouwd die bon details extraheren uit Postmark met behulp van DigitalOcean’s GenAI Agent, veilig bijlagen opslaat in DigitalOcean Spaces, en de geëxtraheerde gegevens opslaat in Google Spreadsheets.
Vandaag voegen we de laatste hand toe – het versturen van bevestigingsmails terug naar de afzender met de bon details, bijlage links en een link naar de Google Spreadsheet. Deze laatste stap verbindt alles, zodat gebruikers directe feedback krijgen dat hun bonnen succesvol zijn verwerkt.
🚀 Wat je zult leren
Aan het einde van deze tutorial weet je hoe je:
- De Resend API gebruikt om bevestigingsmails programmatisch te versturen.
- Beheer gevoelige referenties veilig met behulp van omgevingsvariabelen.
- Formatteer en verzend transactionele e-mails met ontvangstgegevens, bijlagekoppelingen en spreadsheet-URL’s.
- Test en los een volledige e-mailverwerkingsworkflow uit.
🛠 Wat je nodig hebt
Als je wilt meebouwen, gaan we ervan uit dat je Dag 11: Sla ontvangstgegevens en bijlagen op in Google Sheets hebt gevolgd en al hebt:
- Een ingezette Flask-app voor het verwerken van ontvangst-e-mails.
- Google Sheets en DigitalOcean Spaces-integratie opgezet.
Als je alleen geïnteresseerd bent in het leren integreren van Resend voor het verzenden van bevestigingse-mails, heb je nodig:
- Een Resend-account: Meld je aan op Resend.
- Een API-sleutel: Genereer deze vanuit je Resend-dashboard.
Stap 1: Maak een Resend-account aan en verkrijg de API-sleutel
Om e-mails programmatig te verzenden, gebruiken we Resend, een ontwikkelaarsvriendelijke API voor het verzenden van transactionele e-mails. Het vereenvoudigt het verzenden van e-mails, zodat je niet hoeft te worstelen met het opzetten van een e-mailserver, het beheren van SMTP-configuraties of je zorgen te maken over spamfilters.
-
Ga eerst naar Resend en meld je aan voor een gratis account. Zodra je bent ingelogd, ga je naar de sectie API-sleutels van het dashboard en genereer je een nieuwe API-sleutel.
-
Geef je API-sleutel een beschrijvende naam, zoals
Receipt Processor App
, en stel de machtiging in opVolledige toegang
. -
Kopieer de API-sleutel: Je API-sleutel wordt maar één keer weergegeven—kopieer het en bewaar het veilig. Je hebt het nodig in de volgende stap om je app te authenticeren met Resend.
Stap 2: Werk je Omgevingsvariabelen bij
Nu we de Resend API-sleutel hebben, laten we deze opslaan als een omgevingsvariabele in DigitalOcean, net zoals we in deze serie hebben gedaan.
Voor de Resend-integratie moeten we twee omgevingsvariabelen opslaan:
RESEND_API_KEY
: De API-sleutel die je hebt gegenereerd in Stap 1, die je app authenticates met Resend.RESEND_EMAIL_FROM
: Het e-mailadres van de afzender dat je zult gebruiken om bevestigingsmails te verzenden. Dit moet een adres zijn dat in je Resend-account is geverifieerd.
Om deze variabelen toe te voegen, volg je deze stappen:
- Ga naar je DigitalOcean App Platform-dashboard, zoek je Flask-applicatie en ga naar het tabblad Instellingen. Voeg onder Omgevingsvariabelen de twee variabelen toe:
-
Sleutel:
RESEND_API_KEY
- Waarde: Plak de API-sleutel die je hebt gegenereerd in Stap 1.
-
Sleutel:
RESEND_EMAIL_FROM
- Waarde: Voer een geverifieerd afzender e-mailadres in vanuit je Resend-account.
-
-
Sla je wijzigingen op om de Resend API-sleutel beschikbaar te maken voor je Flask-applicatie, die we vervolgens zullen bijwerken.
Stap 3: Installeer de Resend Python Bibliotheek
Vervolgens installeren we de Resend Python bibliotheek om de API voor ons te beheren. Het houdt je code schoon en voorkomt dat je met ruwe HTTP-aanvragen moet omgaan. Voer dit uit in je terminal:
Stap 4: Update requirements.txt
In plaats van requirements.txt
met de hand te bewerken, gebruik pip freeze
om alle geïnstalleerde afhankelijkheden met exacte versies op te sommen. Voer dit uit:
Dit werkt requirements.txt
bij met alles wat je app nodig heeft, inclusief resend
.
Stap 5: Schrijf de Functie om E-mails te Verzenden
Nu is het tijd om de logica voor het verzenden van bevestigings-e-mails toe te voegen. Zie het als het e-mailen van een vriend om hem te laten weten dat zijn pakket is aangekomen—alleen is het hier voor ontvangstbewijzen.
We zullen een send_confirmation_email
functie schrijven die het e-mailadres van de ontvanger, ontvangstgegevens, bijlagen en de URL van de Google Spreadsheet ontvangt. Met behulp van Resend zal het dit formatteren in een e-mail en verzenden. Hier is de functie:
Stap 5: Implementeren op DigitalOcean
Om de bijgewerkte Flask-app te implementeren, volgt u de stappen van Dag 7: Bouwen en implementeren van de op e-mail gebaseerde ontvangstverwerker. Hier is een korte samenvatting:
-
Push uw bijgewerkte code naar GitHub: Nadat u de nodige wijzigingen in uw Flask-app heeft aangebracht, commit en push de bijgewerkte code naar GitHub. Dit zal een automatische implementatie in de App Platform van DigitalOcean activeren.
-
Monitor implementatie: U kunt de voortgang volgen in de Implementaties sectie van het dashboard van uw app.
-
Controleer uw implementatie: Nadat de implementatie is voltooid, navigeer naar de openbare URL van uw app en test de functionaliteit. U kunt ook de runtime logs in het dashboard controleren om te bevestigen dat de app succesvol is gestart.
-
Controleer runtime logs: Als er iets niet werkt zoals verwacht, gebruik dan het Runtime Logs tabblad in het App Platform-dashboard om runtimeproblemen te debuggen. Zoek naar eventuele fouten met betrekking tot de Resend API of andere app-componenten.
Stap 5: Test de Volledige Workflow
Nu je app volledig geconfigureerd en klaar is, is het tijd om de volledige workflow te testen. We zullen ervoor zorgen dat de e-mailbody wordt verwerkt, bijlagen worden gedecodeerd en geüpload naar DigitalOcean Spaces, ontvangstgegevens en bijlage-URL’s worden opgeslagen in Google Sheets, en een bevestigingse-mail wordt verzonden naar de afzender.
Zo kun je stap voor stap testen:
-
Stuur een Test E-mail: Stuur een e-mail naar Postmark met een tekstbody en een bijlage. Als je niet zeker weet hoe je Postmark moet configureren, bekijk dan Dag 8: Postmark verbinden met je Flask-app, waar we hebben laten zien hoe je Postmark kunt instellen om e-mails naar je app door te sturen.
-
Controleer Postmark Activiteit JSON: Ga naar het Activiteit tabblad in het Postmark-dashboard. Zoek de e-mail die je hebt verstuurd en controleer of de JSON-payload de tekstinhoud en Base64-gecodeerde bijlagegegevens bevat. Dit bevestigt dat Postmark de e-mailgegevens correct doorstuurt naar je app, zoals we hebben ingesteld in Dag 8.
-
Monitor de Logs: Controleer de runtime logs in je DigitalOcean App Platform-dashboard om ervoor te zorgen dat de app de JSON-payload verwerkt. Je zou logs moeten zien die tonen dat de ontvangstgegevens werden geëxtraheerd en bijlagen naar DigitalOcean Spaces werden geüpload. Je kunt de runtime logs openen in het Logs tabblad van het DigitalOcean App Platform-dashboard. Als je niet bekend bent met DigitalOcean-logs, hebben we dit besproken tijdens Dag 9: Automatisering van Ontvangstparsering met DigitalOcean’s GenAI Agent.
-
Verifieer Uploads naar Spaces: Bezoek uw DigitalOcean Space om te bevestigen dat de bestanden succesvol zijn geüpload. U zou de bijlagen in uw bucket moeten zien zoals geconfigureerd in Dag 10: Bijlagen Opslaan in DigitalOcean Spaces. Als alles zoals verwacht is verlopen, zullen uw bijlage-URL’s toegankelijk zijn.
-
Controleer Google Spreadsheets: Open uw Google-spreadsheet en bevestig dat er een nieuwe rij met ontvangstgegevens en bijlage-URL’s is toegevoegd, zoals ingesteld op Dag 11: Opslaan van Ontvangstgegevens in Google Spreadsheets. De rij zou moeten bevatten:
- Verkoper, bedrag, valuta en datum die uit de e-mailbody zijn geëxtraheerd.
- Comma-gescheiden URL’s voor de geüploade bijlagen in de laatste kolom.
-
Controleer de Bevestigingsmail: Controleer ten slotte de inbox van het e-mailadres van de afzender om te bevestigen dat de bevestigingsmail is ontvangen. Deze e-mail moet bevatten:
- De geëxtraheerde ontvangstgegevens (leverancier, bedrag, valuta en datum).
- Links naar de geüploade bijlagen in DigitalOcean Spaces.
- Een link naar de Google Spreadsheet waar de ontvangstgegevens zijn vastgelegd.
Probleemoplossing
Als de workflow niet werkt zoals verwacht, volg dan deze paar stappen voor probleemoplossing:
-
Controleer het Resend E-mails Dashboard op Fouten: Bezoek het Resend-dashboard om te zien of er fouten zijn opgetreden bij het verzenden van de bevestigingsmail.
-
Controleer Omgevingsvariabelen: Zorg ervoor dat de API-sleutel (
RESEND_API_KEY
) en verzender e-mail (RESEND_EMAIL_FROM
) correct geconfigureerd zijn in uw omgevingsvariabelen op het DigitalOcean App Platform-dashboard. -
Inspecteer DigitalOcean Runtime Logs: Open het tabblad Runtime Logs in uw DigitalOcean App Platform-dashboard om te controleren op fouten tijdens het verwerken van de e-mail of het uploaden van bijlagen. Deze logs kunnen nuttige inzichten bieden, vooral voor interacties met Postmark of Resend.
-
Bekijk Postmark-activiteit: In het tabblad Activiteit van Postmark, bevestig dat de testmail correct is doorgestuurd naar uw Flask-app. Als er problemen zijn, zal Postmark fouten weergeven met betrekking tot doorsturen of configuratieproblemen.
🎁 Afsluiting
Gefeliciteerd! U heeft met succes de serie 12 Dagen van DigitalOcean voltooid en een volledig functionele E-mailgebaseerde Ontvangstverwerkingsservice gebouwd.
Vandaag heeft u:
- De Resend API geïntegreerd voor het verzenden van transactionele e-mails.
- Omgevingsvariabelen geconfigureerd om gevoelige referenties veilig te beheren.
- Bevestigingsmails verzonden met ontvangstgegevens, bijlagenlinks en een URL naar een spreadsheet.
- De volledige workflow getest van e-mailindiening tot de uiteindelijke bevestiging.
Door bevestigingse-mails toe te voegen, hebt u een project afgerond dat e-mails verwerkt, details extraheren, bijlagen opslaat en alles georganiseerd houdt in Google Spreadsheets. Het is gebruiksvriendelijk, praktisch en klaar om echte problemen op te lossen.
📚 De 12 Dagen van DigitalOcean
Dit markeert het einde van de 12 Dagen van DigitalOcean serie. In de afgelopen 12 dagen hebben we stap voor stap twee real-world applicaties gebouwd. Onderweg hebt u tools gebruikt zoals DigitalOcean’s Serverless Functies, App Platform, Spaces Object Storage, PostgreSQL, DigitalOcean GenAI, Twilio, Google Spreadsheets API, Postmark, PaperTrail, en Resend. Elk onderdeel kwam samen om iets groter te vormen dan de som der delen.
Hier is een korte samenvatting van wat u heeft gebouwd:
🎂 Dagen 1–6: Bouw een Verjaardagsherinneringsservice
Deze app volgt verjaardagen en stuurt automatisch SMS-herinneringen. Het is lichtgewicht, serverloos en eenvoudig te onderhouden.
- Dag 1: Stel een PostgreSQL-database in
Maak een database aan om contactgegevens op te slaan. - Dag 2: Verbind met PostgreSQL via Python
Verbind veilig met je database en haal gegevens op. - Dag 3: Controleer verjaardagen en stuur SMS-meldingen
Gebruik Twilio om gebruikers te informeren over aankomende verjaardagen. - Dag 4: Deploy naar DigitalOcean Functions
Zet je app in de cloud met DigitalOcean Functions. - Dag 5: Automatiseer dagelijkse herinneringen met triggers
Plan herinneringen in om automatisch elke dag te worden uitgevoerd. - Dag 6: Stel Externe Logging In
Monitor en los problemen op met je app met Papertrail.
Op Dag 6 heb je een volledig geautomatiseerde service draaien in de cloud. Het werkt gewoon.
📧 Dagen 7–12: Bouw een E-mail Ontvangstverwerker
Deze app verwerkt e-mailontvangsten, haalt de benodigde details eruit en organiseert alles in een database.
- Dag 7: Bouw en Implementeer een Flask App
Stel een lichte app in om ontvangst-e-mails te verwerken. - Dag 8: Integreer Postmark voor E-mailverwerking
Stuur e-mails door naar je app voor verwerking. - Dag 9: Haal en Maak Gegevens Schoon met DigitalOcean’s GenAI
Gebruik GenAI om gestructureerde gegevens uit e-mailinhoud te extraheren. - Dag 10: Configureer DigitalOcean Spaces voor Veilige Opslag
Bewaar e-mailbijlagen veilig met objectopslag. - Dag 11: Sla Ontvangstgegevens op in Google Sheets
Organiseer gestructureerde gegevens in een spreadsheet voor gemakkelijke toegang. - Dag 12: Stuur Bevestigingsmail
Informeer gebruikers over succesvol verwerkte ontvangstbewijzen.
Tegen Dag 12 heb je een complete tool gebouwd die ontvangstbewijzen van begin tot eind behandelt.
Wat Je Hebt Geleerd
- Gegevens Opslaan en Beheren: Je hebt PostgreSQL gebruikt voor gestructureerde gegevensopslag en Google Sheets voor gemakkelijke, deelbare gegevensregistratie.
- Workflows automatiseren: Met DigitalOcean Functions en planningstriggers automatiseerde je processen en zorgde ervoor dat je apps als een zonnetje draaiden.
- Intelligentie toevoegen aan je apps: Door integratie van DigitalOcean’s GenAI bracht je intelligente gegevensextractie en organisatie in je workflows, waardoor je apps slimmer en capabeler werden.
- Bestanden veilig verwerken: Je werkte met DigitalOcean Spaces om bestanden op een betrouwbare en schaalbare manier op te slaan en te beheren.
- Apps verbeteren met API’s: API’s zoals Twilio, Postmark en Resend brachten functionaliteiten zoals SMS-meldingen, e-mail doorsturen en bevestigingse-mails naar je apps.
- Debuggen en Monitoring: Met behulp van tools zoals Papertrail heb je geleerd om je apps effectief te debuggen en monitoren, zodat ze soepel blijven draaien.
Wat nu
Dit is nog maar het begin – wat je hier hebt geleerd, kan worden toegepast op talloze andere projecten. Hier zijn een paar manieren om verder te gaan:
- Neem deel aan het gesprek op Discord van DigitalOcean om in contact te komen met andere ontwikkelaars, te delen wat je hebt gebouwd en inspiratie op te doen.
- Verken meer in onze zelfstudiebibliotheek voor meer ideeën en projecten.
Als je meedoet, zou ik graag zien wat je maakt – voel je vrij om je voortgang of feedback met mij te delen op Twitter.
Hou het simpel. Bouw iets nuttigs. Veel bouwplezier! 🚀
Source:
https://www.digitalocean.com/community/tutorials/sending-confirmation-emails-with-resend