Curiosus.EMail.Mailgun
3.0.0
dotnet add package Curiosus.EMail.Mailgun --version 3.0.0
NuGet\Install-Package Curiosus.EMail.Mailgun -Version 3.0.0
<PackageReference Include="Curiosus.EMail.Mailgun" Version="3.0.0" />
<PackageVersion Include="Curiosus.EMail.Mailgun" Version="3.0.0" />
<PackageReference Include="Curiosus.EMail.Mailgun" />
paket add Curiosus.EMail.Mailgun --version 3.0.0
#r "nuget: Curiosus.EMail.Mailgun, 3.0.0"
#:package Curiosus.EMail.Mailgun@3.0.0
#addin nuget:?package=Curiosus.EMail.Mailgun&version=3.0.0
#tool nuget:?package=Curiosus.EMail.Mailgun&version=3.0.0
Curiosus.EMail.Mailgun
Mailgun implementation of IEMailSender from
Curiosus.EMail. Sends messages through the Mailgun HTTP API
(US or EU region).
Known issue: in the current version
MailgunEmailOptions.AssertValid()throwsNotImplementedException, so registering or constructing the sender fails. Use anotherIEMailSenderprovider until it is fixed.
Installation
dotnet add package Curiosus.EMail.Mailgun
Usage
Options (MailgunEmailOptions, validated on registration):
Mailgun:
MailgunRegion: US # US (default) or EU
MailgunUser: api # required, basic auth user
MailgunApiKey: <secret> # required
MailgunDomain: mg.example.com # required
EmailFrom: noreply@mg.example.com # required
ReplyTo: support@example.com # optional
IgnoreIncorrectExtraParamsType: false
using Curiosus.EMail;
using Curiosus.EMail.Mailgun;
var mailgunOptions = builder.Configuration.GetSection("Mailgun").Get<MailgunEmailOptions>()!;
builder.Services.AddMailgunEmailSender(mailgunOptions); // IMailgunEmailSender and, by default, IEMailSender
// in a service that receives IEMailSender sender
var response = await sender.SendAsync("user@example.com", "Welcome", "<p>Hello!</p>", isBodyHtml: true, ct);
// use another domain/key for one message
await sender.SendAsync("user@example.com", "Report", "See attachment", false,
new MailgunEmailExtraParams(mailgunDomain: "reports.example.com", emailFrom: "reports@reports.example.com"), ct);
HTTP 420 from Mailgun is returned as EmailError.RateLimit; other unsuccessful responses as EmailError.Auth.
Pass useAsDefaultSender: false to register only IMailgunEmailSender.
HTTP requests go through the HttpClient named MailgunEmailSender.HttpClientName from IHttpClientFactory,
which AddMailgunEmailSender registers. Configure it for timeouts, a proxy or resilience handlers:
services.AddHttpClient(MailgunEmailSender.HttpClientName, client => client.Timeout = TimeSpan.FromSeconds(30));
See also
- Curiosus.EMail —
IEMailSenderabstraction - Curiosus.EMail.SMTP, Curiosus.EMail.UnisenderGo — other providers
- Curiosus.Utils — all packages
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net9.0 is compatible. 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
- Curiosus.Configuration (>= 2.0.0)
- Curiosus.EMail (>= 2.0.0)
- Microsoft.Extensions.Http (>= 10.0.3)
- Microsoft.Extensions.Logging (>= 10.0.3)
-
net9.0
- Curiosus.Configuration (>= 2.0.0)
- Curiosus.EMail (>= 2.0.0)
- Microsoft.Extensions.Http (>= 9.0.13)
- Microsoft.Extensions.Logging (>= 9.0.13)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.