Lyo.Email
3.0.0
dotnet add package Lyo.Email --version 3.0.0
NuGet\Install-Package Lyo.Email -Version 3.0.0
<PackageReference Include="Lyo.Email" Version="3.0.0" />
<PackageVersion Include="Lyo.Email" Version="3.0.0" />
<PackageReference Include="Lyo.Email" />
paket add Lyo.Email --version 3.0.0
#r "nuget: Lyo.Email, 3.0.0"
#:package Lyo.Email@3.0.0
#addin nuget:?package=Lyo.Email&version=3.0.0
#tool nuget:?package=Lyo.Email&version=3.0.0
Lyo.Email
Provider-neutral email contracts, request builder, and send pipeline. EmailRequest is the message both providers send. EmailServiceBase applies the default From, attachment and bulk limits, metrics, logging, and events. Register Lyo.Email.Smtp or Lyo.Email.SendGrid to send. This package does not reference a mail SDK.
Features
- EmailRequest. Sender,
EmailAddressrecipients, subject, text and HTML bodies, attachments, reply-to, headers, and priority. - EmailRequestBuilder. Fluent helper.
Build()returns anEmailRequest. An omitted display name is stored as the address. - EmailServiceBase. Shared pipeline. Providers implement
SendCoreAsyncandTestConnectionCoreAsync. - From. A builder From wins. The explicit from-address overload replaces it.
SendEmailAsync(EmailRequest)does not write the default From onto the result when From was null. - Limits. Over
MaxAttachmentCountPerEmailorMaxBulkEmailLimitthrowsArgumentOutsideRangeExceptionbefore send. An empty bulk list returns an empty result and does not connect. - Cancellation. A cancelled send returns a failed
EmailResultwithEmailErrorCodes.OperationCancelled. It does not throw. A cancelled connection probe throwsOperationCanceledException. - Results. Single sends return
EmailResult, includingMessageId,SentDate, andProviderResponse. - Events.
EmailSending,EmailSent,BulkSending,BulkEmailSent,ConnectionTested. - Metrics. Optional shared counters.
EnableMetrics == falseforcesNullMetrics. - Attachments. Bytes, streams, files, and ZIP helpers.
MetadataJsonstays on the request and is not sent.
Examples
Build a request
var request = EmailRequestBuilder.New()
.SetFrom("noreply@example.com", "My Application")
.AddTo("ada@example.com", "Ada")
.SetReplyTo("reply@example.com", "Replies")
.AddHeader("X-Custom", "yes")
.SetPriority(EmailPriority.Urgent)
.SetSubject("Hello")
.SetTextBody("Plain")
.SetHtmlBody("<p>Hello</p>")
.AddAttachment("note.txt", bytes, "text/plain")
.Build();
Send through a registered provider
var result = await emailService.SendEmailAsync(builder, ct);
if (result.IsSuccess)
{
Console.WriteLine(result.MessageId);
Console.WriteLine(result.ProviderResponse);
}
Shared options
public sealed class ExampleEmailOptions : EmailServiceOptions
{
public override void Validate()
{
base.Validate();
}
}
var options = new ExampleEmailOptions
{
DefaultFromAddress = "noreply@example.com",
DefaultFromName = "My Application",
EnableMetrics = false
};
Which From address wins
Providers
Dependencies
Generated from ProjectReference / PackageReference (same model as docs/Lyo.ProjectGraph.html).
Lyo.Common.Core(direct, lyo)Lyo.Common.Metadata(direct, lyo)Lyo.Exceptions(direct, lyo)Lyo.Metrics(direct, lyo)Lyo.Result(direct, lyo)Microsoft.Extensions.Logging.Abstractions10.0.5(direct, microsoft)Microsoft.Bcl.AsyncInterfaces10.0.5(transitive, microsoft, netstandard2.0)System.Memory4.6.3(transitive, microsoft, netstandard2.0)System.Text.Json10.0.5(transitive, microsoft, netstandard2.0)
| Product | Versions 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 was computed. 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. |
-
.NETStandard 2.0
- Lyo.Common.Core (>= 3.0.0)
- Lyo.Common.Metadata (>= 3.0.0)
- Lyo.Exceptions (>= 3.0.0)
- Lyo.Metrics (>= 3.0.0)
- Lyo.Result (>= 3.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.5)
-
net10.0
- Lyo.Common.Core (>= 3.0.0)
- Lyo.Common.Metadata (>= 3.0.0)
- Lyo.Exceptions (>= 3.0.0)
- Lyo.Metrics (>= 3.0.0)
- Lyo.Result (>= 3.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.5)
NuGet packages (5)
Showing the top 5 NuGet packages that depend on Lyo.Email:
| Package | Downloads |
|---|---|
|
Lyo.Email.Web.Components
Reusable Blazor components for email composition, attachments, and delivery result inspection. |
|
|
Lyo.Email.Smtp
MailKit SMTP implementation of Lyo.Email. |
|
|
Lyo.Email.SendGrid
Twilio SendGrid implementation of Lyo.Email. |
|
|
Lyo.Job.Workers.Notification
Job workers that send notifications as workflow steps: webhook POST, email, and SMS. A send failure fails the job run so the queue's retry, backoff, and DLQ apply. |
|
|
Lyo.Leaderboard.Api
HTTP API for Lyo.Leaderboard. Embed via AddLeaderboardApi / MapLeaderboardApiEndpoints. |
GitHub repositories
This package is not used by any popular GitHub repositories.