E-mail versturen vanuit GitHub Copilot
Copilot schrijft WeSender-integratiecode direct in je editor.
Vereisten
- GitHub Copilot-abonnement (Copilot Individual, Business of Enterprise)
- VS Code met de GitHub Copilot-extensie of JetBrains IDE
- WeSender-account met geverifieerd domein en API-sleutel
Stap 1: Installeer de Copilot-extensie
Open VS Code en installeer de extensie 'GitHub Copilot' en 'GitHub Copilot Chat' vanuit de marketplace. Log in met je GitHub-account. Voor JetBrains installeer je de plugin via Settings > Plugins > GitHub Copilot.
Stap 2: Open Copilot Agent Mode
In VS Code: open de Copilot Chat-sidebar (Ctrl+Alt+I of Cmd+Option+I) en klik op het agentpictogram. In Agent Mode kan Copilot bestanden aanmaken, aanpassen en terminalopdrachten uitvoeren. Selecteer de map van je project als werkruimte.
Stap 3: Geef de integratievraag aan Copilot
@workspace Voeg een e-mailfunctie toe die een welkomstmail verstuurt via de WeSender REST API (POST https://api.wesender.nl/v1/emails). Gebruik process.env.WESENDER_API_KEY als Bearer-token. Maak ook een .env.example-bestand. Copilot leest de projectstructuur, schrijft de functie in de juiste map en maakt het .env.example-bestand aan.
Stap 4: Voeg .env-instructies toe via Copilot
Vraag Copilot: Voeg WESENDER_API_KEY toe aan .env.example en aan .gitignore. Zorg dat de sleutel nooit in de code staat. Copilot voegt de entries toe en past eventueel de bestaande .gitignore aan.
Stap 5: Test de integratie
Vraag Copilot om een test te schrijven: Schrijf een unit test voor de sendEmail-functie met Vitest. Mock de fetch-aanroep en controleer dat de Authorization-header correct is. Run de tests met npm test of via de terminal in de sidebar.
Volledig voorbeeld
Hier is de volledige implementatie in src/lib/email.ts:
export async function sendEmail(opts: {
to: string
subject: string
html: 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",
...opts,
}),
})
if (!res.ok) {
throw new Error(`WeSender-fout: ${res.statusText}`)
}
return res.json() as Promise<{ id: string }>
} Veelgestelde vragen
Copilot schrijft de API-sleutel direct in de code. Hoe voorkom ik dat?
Geef de instructie mee in je prompt: gebruik altijd process.env.WESENDER_API_KEY en nooit een hardcoded waarde. Voeg toe: als je ooit een hardcoded sleutel ziet, markeer dat als een beveiligingsprobleem. Copilot volgt instructies in de prompt.
Kan Copilot ook de WeSender Node SDK gebruiken in plaats van fetch?
Ja. Prompt: gebruik @wesender/node in plaats van fetch. Copilot installeert de package en schrijft: import { Wesender } from '@wesender/node'; const client = new Wesender(process.env.WESENDER_API_KEY!); await client.emails.send({...}).
Copilot genereert andere code dan ik verwacht. Hoe stuur ik bij?
Geef concrete feedback in de chat: de Authorization-header mist, het from-adres moet op geverifieerd domein staan, of voeg foutafhandeling toe. Copilot past de gegenereerde code aan op basis van je feedback.