E-mail voor autonome AI-agenten
Agents die taken uitvoeren, moeten ook kunnen communiceren. Geef je agent een betrouwbaar e-mailkanaal met directe bezorgfeedback via webhooks, zodat de agentlogica weet of berichten zijn aangekomen.
Hoe agents e-mail inzetten
Taakvoltooiing melden. Na elke afgeronde taak stuurt de agent een samenvatting naar de betrokken ontvanger, met het resultaat en eventuele vervolgstap.
Foutmelding direct doorgeven. Bij een fout in de uitvoering informeert de agent de juiste persoon direct. Gestructureerd, op het moment dat het relevant is.
Menselijke input aanvragen. Wanneer een beslissing buiten het domein van de agent valt, stuurt hij een goedkeuringsverzoek. De ontvanger handelt, de agent gaat verder.
Wat je agent verstuurt
Support-triage-agent
Een agent ontvangt een supportticket, classificeert het op basis van inhoud en stuurt het door naar het juiste team via e-mail.
Ticket binnenkomt
Een gebruiker verstuurt een supportverzoek via het contactformulier op je site.
Agent classificeert
De agent leest het ticket en bepaalt of het een factureringsvraaag, een technisch probleem of iets anders is.
Doorsturen via e-mail
De agent roept send_email aan en stuurt het ticket door naar billing@ of tech@, met een korte samenvatting.
Bezorgbevestiging
Wesender stuurt een webhook-event terug zodra de e-mail is bezorgd. De agent verwerkt dat als afsluiting van de taak.
// Scenario: support-triage-agent
// De agent ontvangt een ticket, classificeert het en
// stuurt het door naar het juiste team via e-mail.
import OpenAI from "openai"
import { Wesender } from "@wesender/node"
import { tools, handleSendEmail } from "./send-email-tool"
const openai = new OpenAI()
const emailClient = new Wesender(process.env.WESENDER_API_KEY!)
async function triageTicket(ticket: { van: string; onderwerp: string; inhoud: string }) {
const messages: OpenAI.Chat.ChatCompletionMessageParam[] = [
{
role: "system",
content: `Je bent een support-triage-agent. Classificeer het ticket en
stuur het door naar het juiste team. Gebruik send_email om te notificeren.
Teams: billing@jouwdomein.nl (facturering), tech@jouwdomein.nl (technisch).`,
},
{ role: "user", content: `Van: ${ticket.van}\nOnderwerp: ${ticket.onderwerp}\n\n${ticket.inhoud}` },
]
while (true) {
const response = await openai.chat.completions.create({
model: "gpt-4o", messages, tools, tool_choice: "auto"
})
const choice = response.choices[0]
messages.push(choice.message)
if (choice.finish_reason === "stop") break
for (const call of choice.message.tool_calls ?? []) {
if (call.function.name === "send_email") {
const args = JSON.parse(call.function.arguments)
await handleSendEmail(args)
messages.push({ role: "tool", tool_call_id: call.id, content: "Verstuurd" })
}
}
}
} Tool-definitie, handler en webhook
Kies je AI-framework en bekijk de bijbehorende implementatie. De handler en webhook-code zijn hetzelfde voor alle frameworks.
Idempotentie en retries
Autonome agents lopen soms opnieuw als een stap mislukt. Zonder voorzorg stuur je dan dezelfde e-mail twee keer. Voeg een idempotentie-check toe in je handler: sla een unieke sleutel op vóórdat je verstuurt en sla de aanroep over als die sleutel al bestaat.
- Genereer een sleutel op basis van run-ID en ontvanger
- Sla de sleutel op in Redis of een database
- Controleer vóór elke verzending of de sleutel al bestaat
- Wesender herprobeert zelf bij tijdelijke SMTP-problemen
import { Wesender } from "@wesender/node"
import { createHash } from "crypto"
const client = new Wesender(process.env.WESENDER_API_KEY!)
// Eenvoudige in-memory set (gebruik Redis of een database in productie)
const verzonden = new Set<string>()
export async function sendIdempotent(params: {
to: string; subject: string; html: string; runId: string
}) {
// Unieke sleutel op basis van run-ID en ontvanger
const sleutel = createHash("sha256")
.update(params.runId + params.to + params.subject)
.digest("hex")
if (verzonden.has(sleutel)) {
console.log("Al verstuurd, sla over:", sleutel)
return
}
await client.emails.send({
from: "agent@jouwdomein.nl",
to: params.to,
subject: params.subject,
html: params.html,
})
verzonden.add(sleutel)
} Waarom Wesender voor AI-agenten
Hoge afleverbaarheid
Verzending via EU-infrastructuur met SPF, DKIM en DMARC. Minder kans op spam, ook bij hoog volume.
Realtime webhooks
Direct weten of de mail bezorgd of geweigerd is. Koppel de status terug aan je agentlogica.
Schaalbaar volume
Van tien naar tienduizend mails per dag zonder aanpassingen in je code. Volume schaalt mee.
Drie regels code
Installeer de SDK, stel je API-sleutel in en verstuur. Geen complexe SMTP-configuratie nodig.
Gidsen voor jouw AI-stack
Agent-frameworks
Bouw-tools
Coding-agents
Veelgestelde vragen
Kan een AI-agent e-mails versturen via mijn eigen domein?
Ja. Je koppelt je domein via een DNS-verificatiestap in het Wesender-dashboard. Daarna stuur je als afzender vanuit elk adres op dat domein, inclusief adressen die je agent dynamisch kiest op basis van context.
Hoe weet mijn agent of een e-mail daadwerkelijk bezorgd is?
Wesender stuurt een webhook-event naar een endpoint van jouw keuze zodra de status van een bericht verandert: bezorgd, teruggestuiterd of gemarkeerd als spam. Je agent kan direct reageren op die feedback en zo zijn gedrag aanpassen.
Werkt Wesender met Python, JavaScript en andere talen?
Er zijn officiele SDK's voor Node.js en Python. Voor Go, PHP, Ruby of elke andere taal gebruik je de REST API rechtstreeks. De API volgt een eenvoudige JSON-structuur met een Bearer-token voor authenticatie.
Zijn er volumebeperkingen die mijn agent kunnen vertragen?
Het gratis abonnement omvat 3.000 e-mails per maand. Voor agents met hoog volume zijn betaalde abonnementen beschikbaar. Tijdelijke pieken worden netjes doorgegeven zonder dat berichten verloren gaan.
Valt mijn AI-agent onder de EU AI Act en hoe helpt Wesender daarbij?
Als je agent beslissingen neemt die mensen raken, kan hij onder de EU AI Act vallen. Wesender verwerkt e-mail uitsluitend in Europese datacenters. Je kunt een verwerkersovereenkomst sluiten als de e-mailinhoud persoonsgegevens bevat. Zo voldoet het e-mailkanaal aan je compliance-eisen.
Hoe voorkom ik dat een agent dezelfde e-mail twee keer verstuurt?
Wesender de-dupliceert verzendingen niet automatisch. Implementeer idempotentie in je eigen handler: sla een unieke sleutel op (op basis van run-ID en ontvanger) vóórdat je verstuurt en sla de verzending over als die sleutel al bestaat. Gebruik Redis of een database voor persistentie in productieomgevingen.
Klaar om je agent te koppelen?
Maak een gratis account aan en stuur je eerste e-mail vanuit je AI-agent in minder dan vijf minuten.