v0 + WeSender
v0 genereert React UI-componenten die je exporteert naar een Next.js-project. E-mailverzending zet je in een Server Action zodat de API-sleutel server-side blijft en nooit in de browser verschijnt.
Server Action
Maak een nieuw bestand app/actions/sendEmail.ts en voeg de Server Action toe:
app/actions/sendEmail.ts
"use server"
export async function sendEmail(formData: FormData) {
const to = formData.get("email") as string
const subject = formData.get("subject") as string
const html = formData.get("html") as string
const res = await fetch("https://api.wesender.nl/v1/emails", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.WESENDER_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
from: "noreply@jouwdomein.nl",
to,
subject,
html,
}),
})
if (!res.ok) {
throw new Error(`WeSender-fout: ${res.statusText}`)
}
const { id } = await res.json()
return { id }
} Koppelen aan een v0-component
Importeer de Server Action in het geexporteerde v0-component en koppel hem als action prop aan een formulier:
components/ContactForm.tsx
import { sendEmail } from "@/app/actions/sendEmail"
export function ContactForm() {
return (
<form action={sendEmail}>
<input type="email" name="email" placeholder="Jouw e-mailadres" required />
<input type="text" name="subject" placeholder="Onderwerp" required />
<textarea name="html" placeholder="Bericht (HTML toegestaan)" required />
<button type="submit">Versturen</button>
</form>
)
} Omgevingsvariabele
.env.local
# .env.local (lokale ontwikkeling)
WESENDER_API_KEY=jouw_sleutel Voor productie voeg je WESENDER_API_KEY toe aan de Environment Variables in je Vercel-project via het Vercel-dashboard of de CLI.
Zie ook het volledige overzicht op wesender.nl/ai/integraties/v0.