Cayaqui.Email
0.4.21
dotnet add package Cayaqui.Email --version 0.4.21
NuGet\Install-Package Cayaqui.Email -Version 0.4.21
<PackageReference Include="Cayaqui.Email" Version="0.4.21" />
<PackageVersion Include="Cayaqui.Email" Version="0.4.21" />
<PackageReference Include="Cayaqui.Email" />
paket add Cayaqui.Email --version 0.4.21
#r "nuget: Cayaqui.Email, 0.4.21"
#:package Cayaqui.Email@0.4.21
#addin nuget:?package=Cayaqui.Email&version=0.4.21
#tool nuget:?package=Cayaqui.Email&version=0.4.21
Cayaqui.Email
Servicio genérico de Email para .NET 10 con proveedores intercambiables + renderer de templates:
- Azure Communication Services (ACS) — recomendado para stacks Azure-native.
- SMTP (vía MailKit) — útil para Exchange Online, MailHog/Papercut en dev, corporativos.
- Templates Scriban cargados desde
IStorageService(convención<key>.subject.txt+<key>.html+<key>.textopcional). - Inlining CSS automático con PreMailer.Net (compatibilidad Outlook/Gmail).
Distribución propietaria — requiere contrato comercial con Cayaqui. Ver
LICENSE.txt.
Dependencia: este paquete requiere
Cayaqui.Storageregistrado (AddCayaquiStorage(...)) para cargar los templates.
Instalación
dotnet add package Cayaqui.Email
dotnet add package Cayaqui.Storage
Registro
// ACS con connection string
builder.Services.AddCayaquiStorage(opt => opt.UseAzureBlob(Configuration["Storage:ConnString"]));
builder.Services.AddCayaquiEmail(opt =>
opt.UseAzureCommunicationServices(
connectionString: Configuration["Acs:ConnString"]!,
defaultSender: new EmailAddress("no-reply@cayaqui.com", "Cayaqui")));
// SMTP (Exchange Online / O365)
builder.Services.AddCayaquiEmail(opt =>
{
opt.DefaultFrom = new EmailAddress("no-reply@cayaqui.com", "Cayaqui");
opt.UseSmtp("smtp.office365.com", 587, user, pass, useSsl: true);
});
Uso directo
public class NotificationService(IEmailService email)
{
public Task NotifyAsync(string userEmail)
=> email.SendAsync(new EmailMessage
{
Subject = "Tu reporte está listo",
HtmlBody = "<p>Hola, tu reporte semanal está adjunto.</p>"
}.AddTo(new EmailAddress(userEmail)));
}
Uso con templates
- Subir los templates al container (default
email-templates):
email-templates/welcome.subject.txt → "Bienvenido, {{ user.name }}"
email-templates/welcome.html → "<h1>Hola {{ user.name }}</h1>..."
email-templates/welcome.text → "Hola {{ user.name }}..." (opcional)
- Enviar:
await email.SendTemplateAsync(
templateKey: "welcome",
dataContext: new { user = new { name = "Ana" } },
message: new EmailMessage().AddTo("ana@example.com"));
Sintaxis Scriban: {{ user.name }}, {{ for item in items }}...{{ end }}, filtros | upcase, | date.to_string "dd MMM yy", etc.
Nota sobre colecciones: para iteración con
{{ for ... }}funciona mejor pasar colecciones comoDictionary<string, object>[]oIDictionary<string, object>[](Scriban maneja diccionarios nativamente). Anonymous types y POCOs anidados pueden requerir ajustarMemberRenamer/MemberFilter.
Requisitos
- .NET 10.0 o superior
Cayaqui.Storageregistrado (para templates)- Cuenta Azure Communication Services (si se usa ACS) o servidor SMTP accesible
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | 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
- Azure.Communication.Email (>= 1.1.0)
- Azure.Identity (>= 1.21.0)
- Azure.Storage.Blobs (>= 12.29.0)
- Cayaqui.Storage (>= 0.4.21)
- MailKit (>= 4.17.0)
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.9)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.9)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.9)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.9)
- Microsoft.Extensions.Options (>= 10.0.9)
- PreMailer.Net (>= 2.7.3)
- Scriban (>= 7.2.4)
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 |
|---|---|---|
| 0.4.21 | 106 | 6/23/2026 |
| 0.4.20 | 105 | 6/23/2026 |
| 0.4.15 | 104 | 6/22/2026 |
| 0.4.14 | 106 | 6/22/2026 |
| 0.4.13 | 96 | 6/22/2026 |
| 0.4.10 | 111 | 6/20/2026 |
| 0.4.5 | 99 | 6/20/2026 |
| 0.4.3 | 101 | 6/20/2026 |
| 0.4.2 | 99 | 6/20/2026 |
| 0.4.1 | 101 | 6/20/2026 |
| 0.3.9 | 105 | 6/19/2026 |
| 0.3.8 | 101 | 6/18/2026 |
| 0.3.7 | 97 | 6/18/2026 |
| 0.3.6 | 103 | 6/18/2026 |
| 0.3.5 | 108 | 6/18/2026 |
| 0.3.4 | 99 | 6/17/2026 |
| 0.1.2 | 106 | 6/16/2026 |
| 0.1.1 | 104 | 6/16/2026 |
| 0.1.0 | 102 | 6/15/2026 |
Initial release. IEmailService with Azure Communication Services and SMTP providers, Scriban templates, PreMailer CSS inlining.