SmartMail.NET.Core
7.0.0
dotnet add package SmartMail.NET.Core --version 7.0.0
NuGet\Install-Package SmartMail.NET.Core -Version 7.0.0
<PackageReference Include="SmartMail.NET.Core" Version="7.0.0" />
<PackageVersion Include="SmartMail.NET.Core" Version="7.0.0" />
<PackageReference Include="SmartMail.NET.Core" />
paket add SmartMail.NET.Core --version 7.0.0
#r "nuget: SmartMail.NET.Core, 7.0.0"
#:package SmartMail.NET.Core@7.0.0
#addin nuget:?package=SmartMail.NET.Core&version=7.0.0
#tool nuget:?package=SmartMail.NET.Core&version=7.0.0
๐จ SmartMail.NET.Core
SmartMail.NET.Core is a powerful and extensible email delivery pipeline for .NET applications.
It provides a flexible architecture for managing multiple email providers, handling quotas, and implementing fallback mechanisms.
โจ Features
- โ Multiple Provider Support โ Currently supports SMTP and AWS SES with more providers coming soon
- ๐ Smart Failover โ Automatic switching to backup providers on failure
- โ๏ธ Extensible Architecture โ Add custom providers via NuGet packages
- ๐ Quota Management โ Hourly, daily, and monthly quota tracking
- ๐ Runtime Configuration โ Update provider settings without restart
- ๐งช Test-friendly โ Clean interfaces and extensibility built-in
๐ฆ Installation
dotnet add package SmartMail.NET.Core
๐ ๏ธ Getting Started
- Register the core pipeline in your
Program.cs
orStartup.cs
- Configure your providers
- Use the injected services to send emails
services.AddSmartMail(config =>
{
// Configure SMTP provider
config.AddProvider<SmtpEmailProvider>(options =>
{
options.Name = "SMTP";
options.Priority = 1;
options.HourlyQuota = 100;
options.DailyQuota = 1000;
options.MonthlyQuota = 10000;
options.Settings["Host"] = "smtp.gmail.com";
options.Settings["Port"] = "587";
options.Settings["EnableSsl"] = "true";
options.Settings["Username"] = "your-email@gmail.com";
options.Settings["Password"] = "your-app-password";
options.Settings["DefaultFrom"] = "your-email@gmail.com";
});
// Configure AWS SES provider
config.AddProvider<AwsSesEmailProvider>(options =>
{
options.Name = "AWS SES";
options.Priority = 2;
options.HourlyQuota = 200;
options.DailyQuota = 2000;
options.MonthlyQuota = 20000;
options.Settings["Region"] = "us-west-2";
options.Settings["AccessKey"] = "your-access-key";
options.Settings["SecretKey"] = "your-secret-key";
});
// Configure provider behavior
config.ConfigureProviders(options =>
{
options.EnableFallback = true;
options.MaxRetries = 3;
});
});
๐ฆ Provider Architecture
Every email provider implements the shared IEmailProvider
interface, allowing:
- Custom retry logic
- Load balancing
- Metrics collection
- Easy fallback switching
Want to build your own provider? Just implement the interface and register it.
๐งฑ Architecture
Validate Email
โ
Select Provider (priority/failover)
โ
Check Quotas
โ
Send Email
โ
Track Result
๐ Roadmap
- Core pipeline and interfaces
- SMTP provider
- AWS SES provider
- SendGrid provider
- Mailgun provider
- Webhook support for delivery confirmations
- SQL Server / PostgreSQL logging
- Hangfire/Quartz integration
๐ค Contributing
This project is owned and maintained by the Net of Code team. All contributions become the property of Net of Code.
Contributions are welcome! Whether it's a bug fix, a new provider, or improvements โ please open a PR or issue.
๐ License
MIT
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net7.0 is compatible. 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 was computed. 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. |
-
net7.0
- AWSSDK.SimpleEmail (>= 3.7.300.52)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 7.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 7.0.0)
- Microsoft.Extensions.Options (>= 7.0.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on SmartMail.NET.Core:
Package | Downloads |
---|---|
SmartMail.NET.Dashboard
Dashboard UI for SmartMail.NET - Monitor your email providers and sending status in real-time |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last Updated |
---|---|---|
7.0.0 | 193 | 5/11/2025 |