E-mail versturen vanuit Claude Agent SDK
Bouw een volwaardige AI-agent met de Claude Agent SDK die zelfstandig e-mails verstuurt als onderdeel van een meerstappenproces.
Vereisten
- Wesender-account met geverifieerd verzenddomein
- API-sleutel van Wesender (WESENDER_API_KEY)
- Anthropic API-sleutel (ANTHROPIC_API_KEY)
- Node.js 20 of nieuwer
Stap 1: Installeer de Claude Agent SDK
Installeer de officiële Claude Agent SDK en de Wesender Node.js SDK in je project.
npm init -y
npm install @anthropic-ai/claude-code @wesender/node
npm install -D typescript tsx Stap 2: Definieer de e-mail-tool
Maak een tool-object dat de agent kan gebruiken om e-mails te versturen. De SDK herkent het automatisch als uitvoerbare actie.
import { tool } from "@anthropic-ai/claude-code"
import { WesenderClient } from "@wesender/node"
const wesender = new WesenderClient({ apiKey: process.env.WESENDER_API_KEY })
export const sendEmailTool = tool({
name: "send_email",
description: "Verstuur een transactionele e-mail via Wesender",
parameters: {
to: { type: "string" as const, description: "Ontvanger e-mailadres" },
subject: { type: "string" as const, description: "Onderwerp" },
html: { type: "string" as const, description: "HTML-inhoud" },
},
execute: async ({ to, subject, html }: { to: string; subject: string; html: string }) => {
await wesender.emails.send({ from: "noreply@jouwdomein.nl", to, subject, html })
return { success: true, recipient: to }
},
}) Stap 3: Start de agent met een doel
Maak een agent-instantie en geef hem de tools mee. De agent verwerkt de instructie zelfstandig en roept de e-mail-tool aan wanneer dat nodig is.
import { Agent } from "@anthropic-ai/claude-code"
import { sendEmailTool } from "./tools"
const agent = new Agent({
model: "claude-opus-4-8",
tools: [sendEmailTool],
})
const result = await agent.run(
"Verstuur een welkomstmail aan anna@voorbeeld.nl en bas@voorbeeld.nl"
)
console.log("Agent klaar:", result.summary) Volledig voorbeeld
Hier is de volledige implementatie in claude-agent-email.ts:
import { Agent, tool } from "@anthropic-ai/claude-code"
import { WesenderClient } from "@wesender/node"
const wesender = new WesenderClient({ apiKey: process.env.WESENDER_API_KEY })
const sendEmailTool = tool({
name: "send_email",
description: "Verstuur een transactionele e-mail via Wesender",
parameters: {
to: { type: "string" as const, description: "Ontvanger e-mailadres" },
subject: { type: "string" as const, description: "Onderwerp" },
html: { type: "string" as const, description: "HTML-inhoud" },
},
execute: async ({ to, subject, html }: { to: string; subject: string; html: string }) => {
await wesender.emails.send({ from: "noreply@jouwdomein.nl", to, subject, html })
return { success: true, recipient: to }
},
})
const agent = new Agent({
model: "claude-opus-4-8",
tools: [sendEmailTool],
})
const result = await agent.run(
"Verstuur een welkomstmail aan anna@voorbeeld.nl en bas@voorbeeld.nl"
)
console.log("Agent klaar:", result.summary) Bezorgstatussen via webhooks
Claude Agent SDK kan bezorg-, bounce- en klachtsignalen ontvangen via webhooks. Configureer een webhook-endpoint in je Claude Agent SDK-workflow dat POST-verzoeken van Wesender accepteert. Zie Webhooks instellen voor de volledige configuratiestappen en het payload-formaat.
Veelgestelde vragen
Wat is het verschil tussen de Claude Agent SDK en gewone tool use?
Bij gewone tool use verwerk je de cyclus handmatig: user message, tool call, tool result, response. De Agent SDK beheert deze cyclus automatisch. De agent kan meerdere tools aanroepen in een keten zonder dat je elke stap hoeft te orchestreren.
Kan de agent meerdere e-mails in een taak versturen?
Ja. De agent kan send_email meerdere keren aanroepen als de instructie daarom vraagt. Je kunt ook een limiet instellen op het aantal tool-aanroepen om onverwacht hoge verzendvolumes te voorkomen.
Hoe log ik wat de agent heeft gedaan?
De Agent SDK retourneert een gedetailleerde trace van alle stappen, inclusief de tool-aanroepen en de resultaten. Sla deze trace op in je eigen logging-systeem voor audits en debugging.