Curiosus.EMail.UnisenderGo
Unisender Go implementation of IEMailSender from
Curiosus.EMail. Sends transactional e-mails through the
Unisender Go HTTP API, with optional link/read tracking and an unsubscribe URL.
Installation
dotnet add package Curiosus.EMail.UnisenderGo
Usage
Options (UnisenderGoEmailOptions, validated on registration):
UnisenderGo:
ApiKey: <secret> # required
Region: Russia # default and currently the only region
EmailFrom: noreply@example.com # required
FromName: Example # required
ReplyTo: support@example.com # optional
UnsubscribeUrl: https://example.com/unsubscribe # optional
TrackLinks: true # optional
TrackReads: true # optional
SkipUnisenderUnsubscribeFooter: false # optional, works only if enabled for your account
IgnoreIncorrectExtraParamsType: false
using Curiosus.EMail;
using Curiosus.Email.UnisenderGo;
var unisenderOptions = builder.Configuration.GetSection("UnisenderGo").Get<UnisenderGoEmailOptions>()!;
builder.Services.AddUnisenderGoEmailSender(unisenderOptions); // IUnisenderGoEmailSender 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);
// override settings for one message
await sender.SendAsync("user@example.com", "News", "<p>News</p>", true,
new UnisenderGoEmailExtraParams(fromName: "Newsletter", trackLinks: false), ct);
HTTP errors are mapped to EmailError: 401 → Auth, 403 → Auth or RateLimit (by Unisender error code),
400 → IncorrectRequestData, 429 → RateLimit, 404 and 5xx → Communication.
Note: the namespace is Curiosus.Email.UnisenderGo (while the package id is Curiosus.EMail.UnisenderGo).
HTTP requests go through the HttpClient named UnisenderGoEmailSender.HttpClientName from IHttpClientFactory,
which AddUnisenderGoEmailSender registers. Configure it for timeouts, a proxy or resilience handlers:
services.AddHttpClient(UnisenderGoEmailSender.HttpClientName, client => client.Timeout = TimeSpan.FromSeconds(30));
See also
- Curiosus.EMail —
IEMailSenderabstraction - Curiosus.EMail.SMTP, Curiosus.EMail.Mailgun — other providers
- Curiosus.Utils — all packages