.NET / C#
De officiële Wesender NuGet-package biedt een async client voor de Wesender API.
Werkt met .NET 6+, ASP.NET Core en dependency injection.
github.com/wesender/wesender-dotnet
Installatie
dotnet add package Wesender Initialisatie
using Wesender;
var ws = new WesenderClient(Environment.GetEnvironmentVariable("WS_API_KEY")!); E-mail versturen
var result = await ws.SendEmailAsync(new SendEmailOptions
{
From = "noreply@joudomein.nl",
To = "klant@voorbeeld.nl",
Subject = "Welkom!",
Html = "<p>Bedankt voor je registratie.</p>",
});
Console.WriteLine($"{result.Id} {result.Status}"); // em_01hw... queued Meerdere ontvangers
await ws.SendEmailAsync(new SendEmailOptions
{
From = "nieuwsbrief@joudomein.nl",
To = "a@voorbeeld.nl,b@voorbeeld.nl",
Subject = "Maandelijks rapport",
Html = "<p>Zie bijgevoegde informatie.</p>",
}); Bijlagen
var pdf = Convert.ToBase64String(await File.ReadAllBytesAsync("factuur.pdf"));
await ws.SendEmailAsync(new SendEmailOptions
{
From = "facturen@joudomein.nl",
To = "klant@voorbeeld.nl",
Subject = "Factuur 2026-0142",
Html = "<p>Bijgevoegd vind je jouw factuur.</p>",
Attachments =
[
new Attachment
{
Filename = "factuur-2026-0142.pdf",
Content = pdf,
ContentType = "application/pdf",
}
],
}); Domeinen beheren
// Alle domeinen
var domeinen = await ws.ListDomainsAsync();
// Domein toevoegen
var domein = await ws.CreateDomainAsync("joudomein.nl");
Console.WriteLine(domein.DnsRecords); // SPF, DKIM, DMARC
// DNS verifiëren
var resultaat = await ws.VerifyDomainAsync(domein.Id);
Console.WriteLine($"{resultaat.SpfOk} {resultaat.DkimOk}"); API-sleutels beheren
// Nieuwe sleutel aanmaken
var sleutel = await ws.CreateApiKeyAsync("Productie-server");
Console.WriteLine(sleutel.Token); // ws_live_... (sla op!)
// Alle sleutels
var sleutels = await ws.ListApiKeysAsync();
// Sleutel verwijderen
await ws.DeleteApiKeyAsync(sleutel.Id); Foutafhandeling
using Wesender;
try
{
await ws.SendEmailAsync(new SendEmailOptions
{
From = "...", To = "...", Subject = "...", Html = "...",
});
}
catch (WesenderException ex)
{
Console.WriteLine(ex.Message); // Domain not verified
Console.WriteLine(ex.StatusCode); // 422
} ASP.NET Core (dependency injection)
using Wesender;
// Registreer als singleton via DI
builder.Services.AddSingleton(
new WesenderClient(builder.Configuration["WS_API_KEY"]!)
); using Wesender;
public class EmailService(WesenderClient ws)
{
public async Task StuurWelkomstmail(string naam, string email)
{
await ws.SendEmailAsync(new SendEmailOptions
{
From = "noreply@joudomein.nl",
To = email,
Subject = $"Welkom, {naam}!",
Html = $"<h1>Hoi {naam}!</h1><p>Bedankt voor je aanmelding.</p>",
});
}
} Zonder SDK (HttpClient)
using System.Net.Http.Json;
using var client = new HttpClient();
client.DefaultRequestHeaders.Add(
"Authorization", $"Bearer {Environment.GetEnvironmentVariable("WS_API_KEY")}");
var response = await client.PostAsJsonAsync("https://api.wesender.nl/emails", new
{
from = "noreply@joudomein.nl",
to = "klant@voorbeeld.nl",
subject = "Hallo!",
html = "<p>Via HttpClient.</p>",
});
response.EnsureSuccessStatusCode();