Mailgunner 0.2.0

dotnet add package Mailgunner --version 0.2.0
                    
NuGet\Install-Package Mailgunner -Version 0.2.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Mailgunner" Version="0.2.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Mailgunner" Version="0.2.0" />
                    
Directory.Packages.props
<PackageReference Include="Mailgunner" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Mailgunner --version 0.2.0
                    
#r "nuget: Mailgunner, 0.2.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Mailgunner@0.2.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Mailgunner&version=0.2.0
                    
Install as a Cake Addin
#tool nuget:?package=Mailgunner&version=0.2.0
                    
Install as a Cake Tool

Mailgunner

Lightweight, modern, unofficial .NET client for the Mailgun (Sinch) REST API, focused on bulk personalized email delivery.

Latest release: 0.1.1. Sending (single, templated, personalized batches), suppression lists, domain webhook management, webhook signature verification, named clients, one-click List-Unsubscribe, stream attachments and a safe-by-default send retry mode. See the changelog.

Highlights

  • Modern & slim — multi-targets net10.0, net8.0 and netstandard2.0; minimal dependency footprint (System.Text.Json, Polly.Core, Microsoft.Extensions.Http).
  • Resilient HTTP — built around typed HttpClient via IHttpClientFactory with Polly transient-fault handling (automatic retry with backoff, on by default).
  • Documented & strict — nullable reference types, XML docs, and warnings-as-errors.
  • Debuggable packages — deterministic builds with SourceLink and symbol packages.

Installation

dotnet add package Mailgunner

Releases are published on v* tags; see docs/RELEASING.md.

Quickstart

For a single message, register the client with your host and resolve it from DI:

using Mailgunner;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;

var builder = Host.CreateApplicationBuilder(args);
builder.Services.AddMailgunner(
    "mg.example.com", builder.Configuration["Mailgun:SendingKey"]!, MailgunRegion.Us);
using var host = builder.Build();
var client = host.Services.GetRequiredService<IMailgunnerClient>();
var message = new MailgunMessage
{
    From = "hello@mg.example.com",
    Subject = "Hello",
    Text = "Your first message from Mailgunner.",
};
message.To.Add("you@example.com");
SendResult result = await client.SendAsync(message);
Console.WriteLine(result.Id); // accepted by Mailgun; this is not a delivery confirmation

This console example also uses the Microsoft.Extensions.Hosting package. Supply the key through configuration or Mailgun__SendingKey; use the region and sender domain configured in your account.

Documentation

Full documentation lives in the repository; every link below is absolute so it also works from the NuGet package page.

Guide What it covers
Getting started Installation, registration and DI, which credential each operation needs, regions, running the sample.
Sending messages Personalized batches from a stored template, attachments and per-send options, the 16KB cap, recovering batch progress.
Multiple named clients Several Mailgun identities in one application, each with its own domain, key, region and retry settings.
Automatic retry & backoff What is retried and what is not, SendRetryMode, Retry-After, the mandatory wait cap, tuning.
Suppression lists Bounces, unsubscribes and complaints — list, get, add, remove, clear, and how paging works.
Webhooks Managing domain webhook registrations, and verifying incoming webhook signatures.
Limitations & API coverage Trimming/AOT, duplicate delivery, timeouts, large imports — and which Mailgun endpoints are implemented.
Building from source Build and test commands, opt-in live integration tests, project layout.
Releasing How a version is tagged and published.

Changelog & license

Disclaimer

Mailgunner is a community-maintained, unofficial library. It is not affiliated with, authorized by, or endorsed by Mailgun or Sinch. "Mailgun" and "Sinch" are trademarks of their respective owners.

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.2.0 120 9/6/2026
0.1.1 98 9/4/2026
0.1.0 94 9/3/2026