SplatDev.Messaging.Mailgun
1.0.2
dotnet add package SplatDev.Messaging.Mailgun --version 1.0.2
NuGet\Install-Package SplatDev.Messaging.Mailgun -Version 1.0.2
<PackageReference Include="SplatDev.Messaging.Mailgun" Version="1.0.2" />
<PackageVersion Include="SplatDev.Messaging.Mailgun" Version="1.0.2" />
<PackageReference Include="SplatDev.Messaging.Mailgun" />
paket add SplatDev.Messaging.Mailgun --version 1.0.2
#r "nuget: SplatDev.Messaging.Mailgun, 1.0.2"
#:package SplatDev.Messaging.Mailgun@1.0.2
#addin nuget:?package=SplatDev.Messaging.Mailgun&version=1.0.2
#tool nuget:?package=SplatDev.Messaging.Mailgun&version=1.0.2
SplatDev.Messaging.Mailgun
Mailgun email provider for SplatDev.Messaging — sends emails via the Mailgun REST API using HttpClient. No third-party Mailgun SDK required.
Compatibility
| .NET | Umbraco | Package Version |
|---|---|---|
| 8.0 | 13 | 1.0.0 |
| 10.0 | 17 | 1.0.0 |
Installation
dotnet add package SplatDev.Messaging.Mailgun
Configuration
Constructor
using SplatDev.Messaging.Mailgun.Controllers;
var mailgun = new MailgunController(
apiKey: "key-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
domain: "mg.yourdomain.com");
apiKey— Your Mailgun API key (starts withkey-)domain— Your Mailgun sending domain (e.g.mg.example.com)
DI registration (recommended)
builder.Services.AddSingleton<IMailgunController>(sp =>
{
var apiKey = builder.Configuration["Mailgun:ApiKey"];
var domain = builder.Configuration["Mailgun:Domain"];
return new MailgunController(apiKey!, domain!);
});
Usage
using SplatDev.Messaging.Interfaces;
// Send with string parameters
var result = mailgun.SendMessage(
subject: "Welcome!",
from: "SplatDev",
fromAddress: "no-reply@mg.example.com",
to: "New Customer",
toAddress: "customer@example.com",
message: "<h1>Welcome aboard!</h1>",
plainMessage: "Welcome aboard!");
// Send with a MailgunMessage object
var msg = new MailgunMessage
{
From = "SplatDev <no-reply@mg.example.com>",
To = "customer@example.com",
Subject = "Your invoice",
Html = "<h1>Invoice attached</h1>",
Text = "Invoice attached",
Cc = "admin@example.com",
};
var result = await mailgun.SendMessageAsync(msg);
if (result.Success)
Console.WriteLine($"Sent! Message ID: {result.MessageId}");
else
Console.WriteLine($"Failed ({result.StatusCode}): {result.Message}");
Features
- Full
IMessagingController<MailgunMessage, MailgunResult>implementation - Truly async —
SendMessageAsyncawaits the Mailgun HTTP API - Sync wrappers via
.GetAwaiter().GetResult() - CC and BCC support
- HTML and plain-text body support
- Zero third-party Mailgun SDK dependency — uses
HttpClientdirectly - API key sent via HTTP Basic auth (
api:key-...)
API Endpoint
Messages are posted to:
POST https://api.mailgun.net/v3/{domain}/messages
With Basic authentication (Authorization: Basic base64(api:<key>)) and form-urlencoded body.
Dependencies
| Package | Purpose |
|---|---|
SplatDev.Messaging |
Core messaging abstractions (IMessagingController<T,U>) |
No other NuGet dependencies — the mailgun_csharp SDK was replaced with direct HttpClient usage.
SplatDev.Messaging.Mailgun — part of the SplatDev.Umbraco.Plugins suite. Licensed under MIT. © SplatDev Ltda.
Changelog
1.0.2 — 2026-08-24
Removes a dashboard screenshot that showed an error toast. It was captured against a site where this plugin's API was unreachable, so it advertised a broken dashboard. No screenshot is better than a misleading one; a replacement will be taken against a working install.
1.0.1 — 2026-08-24
Package metadata only: the listing now carries an icon and search tags, and the project and repository links point at the organisation that actually hosts this code. No code changes.
1.0.0 — 2026-08-24
This package now keeps a changelog. Earlier releases predate it and are not reconstructed here — consult the repository history for those. From this version on, every release records what changed for someone using it.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | 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. |
-
net10.0
- SplatDev.Messaging (>= 1.0.2)
-
net8.0
- SplatDev.Messaging (>= 1.0.2)
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 |
|---|---|---|
| 1.0.2 | 61 | 8/24/2026 |