E-mail versturen vanuit Anthropic Claude
Gebruik Claude's tool use om e-mails te sturen vanuit een AI-agent zonder tussenkomst van de gebruiker.
Vereisten
- Wesender-account met geverifieerd verzenddomein
- API-sleutel van Wesender (WESENDER_API_KEY)
- Anthropic API-sleutel (ANTHROPIC_API_KEY)
- Node.js 18 of nieuwer
Stap 1: Installeer de benodigde packages
Maak een nieuw Node.js-project aan en installeer de Anthropic SDK en de Wesender Node.js SDK.
npm init -y
npm install @anthropic-ai/sdk @wesender/node
npm install -D typescript tsx Stap 2: Definieer de send_email-tool
Maak een tool-definitie aan. Claude gebruikt het JSON-schema om te begrijpen welke parameters hij moet meegeven bij het versturen van een e-mail.
import Anthropic from "@anthropic-ai/sdk"
const tools: Anthropic.Tool[] = [
{
name: "send_email",
description: "Verstuur een transactionele e-mail via Wesender",
input_schema: {
type: "object",
properties: {
to: { type: "string", description: "E-mailadres van de ontvanger" },
subject: { type: "string", description: "Onderwerp van de e-mail" },
html: { type: "string", description: "HTML-inhoud van de e-mail" },
},
required: ["to", "subject", "html"],
},
},
] Stap 3: Roep Claude aan en verwerk de tool
Stuur een gebruikersbericht naar Claude. Als Claude de send_email-tool aanroept, haal je de parameters op en stuur je de e-mail via Wesender.
import { WesenderClient } from "@wesender/node"
const client = new Anthropic({ apiKey: process.env.ANTHROPIC_API_KEY })
const wesender = new WesenderClient({ apiKey: process.env.WESENDER_API_KEY })
const response = await client.messages.create({
model: "claude-opus-4-8",
max_tokens: 1024,
tools,
messages: [{ role: "user", content: "Stuur een welkomstmail naar jan@voorbeeld.nl" }],
})
for (const block of response.content) {
if (block.type === "tool_use" && block.name === "send_email") {
const { to, subject, html } = block.input as {
to: string; subject: string; html: string
}
await wesender.emails.send({ from: "noreply@jouwdomein.nl", to, subject, html })
console.log("E-mail verzonden naar", to)
}
} Volledig voorbeeld
Hier is de volledige implementatie in claude-tool-use.ts:
import Anthropic from "@anthropic-ai/sdk"
import { WesenderClient } from "@wesender/node"
const client = new Anthropic({ apiKey: process.env.ANTHROPIC_API_KEY })
const wesender = new WesenderClient({ apiKey: process.env.WESENDER_API_KEY })
const tools: Anthropic.Tool[] = [
{
name: "send_email",
description: "Verstuur een transactionele e-mail via Wesender",
input_schema: {
type: "object",
properties: {
to: { type: "string", description: "E-mailadres van de ontvanger" },
subject: { type: "string", description: "Onderwerp van de e-mail" },
html: { type: "string", description: "HTML-inhoud van de e-mail" },
},
required: ["to", "subject", "html"],
},
},
]
async function runEmailAgent(userMessage: string) {
const response = await client.messages.create({
model: "claude-opus-4-8",
max_tokens: 1024,
tools,
messages: [{ role: "user", content: userMessage }],
})
for (const block of response.content) {
if (block.type === "tool_use" && block.name === "send_email") {
const { to, subject, html } = block.input as {
to: string; subject: string; html: string
}
await wesender.emails.send({ from: "noreply@jouwdomein.nl", to, subject, html })
console.log("E-mail verzonden naar", to)
}
}
}
runEmailAgent("Stuur een bevestigingsmail naar maria@voorbeeld.nl") Bezorgstatussen via webhooks
Anthropic Claude kan bezorg-, bounce- en klachtsignalen ontvangen via webhooks. Configureer een webhook-endpoint in je Anthropic Claude-workflow dat POST-verzoeken van Wesender accepteert. Zie Webhooks instellen voor de volledige configuratiestappen en het payload-formaat.
Veelgestelde vragen
Kan ik meerdere e-mails in een gesprek sturen?
Ja. Voeg het tool_result-blok toe aan de berichten en stuur een vervolgrequest naar Claude. Zolang je de conversation history bijhoudt, kan Claude meerdere keren send_email aanroepen binnen hetzelfde gesprek.
Welk Claude-model moet ik gebruiken?
claude-opus-4-8 biedt de sterkste redenering voor complexe instructies. Voor hogere snelheid bij lagere kosten kun je claude-haiku-4-5-20251001 gebruiken. Beide ondersteunen tool use volledig.
Hoe voorkom ik dat Claude onbedoeld e-mails verstuurt?
Bouw een bevestigingsstap in: verwerk de tool_use-blokken niet automatisch, maar toon de parameters eerst aan de gebruiker. Wacht op goedkeuring voordat je de Wesender API aanroept. Zo blijft de mens in de loop.