technisch · antwoord met bronnen

E-mailwebhook: definitie en technische implementatie

Een e-mailwebhook is een HTTP-callback waarmee een e-mailprovider een doelserver op de hoogte brengt van specifieke events. In plaats van dat de applicatie een API pollt voor statusupdates, pusht de provider direct na een event, zoals een mislukte bezorging of een klik op een link, een JSON- of XML-payload naar een vooraf ingestelde URL.

Hoe het technisch werkt

Treedt er een event op, dan genereert de e-mailprovider een HTTP POST-request. Dit request bevat een payload met metadata over het event, waaronder de bericht-ID, het adres van de ontvanger en een tijdstempel. De ontvangende server moet luisteren op een publiek endpoint, het inkomende request valideren en een 200 OK-respons teruggeven om de ontvangst te bevestigen. Geeft de server een fout terug, dan kan de provider de bezorging opnieuw proberen met een exponential backoff-strategie.

Waarom het belangrijk is voor afzenders

Webhooks zijn essentieel voor het behoud van je afzenderreputatie. Met realtime notificaties van hard bounces of spamklachten kunnen developers ongeldige adressen automatisch uit hun lijsten verwijderen. Zo voorkom je dat je herhaaldelijk naar dode mailboxen verstuurt, een belangrijk signaal waarmee ISP's afzenders als van lage kwaliteit aanmerken. Snel reageren op deze signalen zorgt voor een hogere deliverability.

Praktische overwegingen

Veelvoorkomende problemen zijn time-outs wanneer de ontvangende server de payload synchroon verwerkt. Om dat te voorkomen, kiezen developers voor een asynchrone architectuur: de webhook wordt ontvangen, in een systeem als Redis of RabbitMQ in de wachtrij gezet en meteen bevestigd. Daarnaast is beveiliging cruciaal: servers moeten de handtekening van de provider verifiëren of het bron-IP controleren om gespoofde eventnotificaties te voorkomen.

Concreet implementatievoorbeeld

Een typische workflow begint met het instellen van een URL bij een provider zoals Resend of Amazon SES. Klikt een gebruiker op een link in een e-mail, dan stuurt de provider een POST-request naar /webhooks/email met een body als { event: click, email: user@example.com, link: https://site.com/offer }. De applicatie werkt vervolgens het gebruikersrecord in de database bij om de campagne als geslaagd te markeren.

Integratie met tools

Voor webhooks heb je een publieke URL nodig en een manier om payloads te testen. Developers kunnen SendHQ of de gratis tools (https://sendhq.cc/tools) gebruiken om de technische vereisten van hun e-mailinfrastructuur te beheren en te zorgen dat hun configuratie aansluit op de branchestandaarden.

Vragen die teams stellen

Wat is het verschil tussen een API en een webhook?

Een API is een request van de client aan de server om data op te halen. Een webhook is een request van de server aan de client om automatisch data te pushen wanneer er een event plaatsvindt.

Hoe beveilig ik een endpoint voor e-mailwebhooks?

Gebruik geheime tokens in de header, verifieer de HMAC-handtekening van de e-maildienst of beperk inkomend verkeer tot de specifieke IP-ranges van de provider.

Wat gebeurt er als mijn server offline is tijdens een webhookevent?

De meeste professionele providers zetten het event in de wachtrij en proberen het over een periode van uren of dagen meerdere keren opnieuw af te leveren voordat ze het als onbezorgbaar markeren.

Primaire bronnen