ApplicaDemo.GmailSender
1.0.0
dotnet add package ApplicaDemo.GmailSender --version 1.0.0
NuGet\Install-Package ApplicaDemo.GmailSender -Version 1.0.0
<PackageReference Include="ApplicaDemo.GmailSender" Version="1.0.0" />
<PackageVersion Include="ApplicaDemo.GmailSender" Version="1.0.0" />
<PackageReference Include="ApplicaDemo.GmailSender" />
paket add ApplicaDemo.GmailSender --version 1.0.0
#r "nuget: ApplicaDemo.GmailSender, 1.0.0"
#:package ApplicaDemo.GmailSender@1.0.0
#addin nuget:?package=ApplicaDemo.GmailSender&version=1.0.0
#tool nuget:?package=ApplicaDemo.GmailSender&version=1.0.0
GmailSender - Librería .NET para Enviar Correos con Gmail y OAuth 2.0
GmailSender
es una librería para .NET que simplifica el envío de correos electrónicos a través de la API de Gmail, utilizando el protocolo de autenticación seguro OAuth 2.0.
Está diseñada siguiendo los principios SOLID y de Clean Code, ofreciendo una forma robusta, mantenible y fácil de integrar para añadir funcionalidades de correo a tus aplicaciones .NET.
Características
- Autenticación Segura con OAuth 2.0: No almacenes contraseñas. La librería gestiona el flujo de autorización de Google, abriendo un navegador para que el usuario dé su consentimiento de forma segura la primera vez.
- Fácil de Configurar: Se integra con el sistema de Inyección de Dependencias de .NET (
IServiceCollection
) con una sola línea de código. - Diseño Basado en Abstracciones: Depende de interfaces (
IEmailService
), permitiendo un código desacoplado y fácil de probar. - Configuración Flexible: Permite configurar la ubicación tanto del archivo de secretos de cliente como del token de autenticación.
Instalación
Próximamente, esta librería estará disponible como un paquete de NuGet. Por ahora, puedes incluir el proyecto GmailSender
directamente en tu solución.
Cómo Empezar
1. Configurar tu Proyecto en Google Cloud
Antes de poder usar la librería, necesitas obtener tus credenciales de la API de Gmail. Sigue las instrucciones detalladas en el siguiente documento:
Guía: Cómo Configurar Google Cloud para la API de Gmail
Al final de esa guía, tendrás un archivo client_secrets.json
.
2. Configurar los Servicios
En tu archivo Program.cs
(o donde configures tus servicios), usa el método de extensión AddGmailSender
.
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using GmailSender.Extensions;
var host = Host.CreateDefaultBuilder(args)
.ConfigureServices((context, services) =>
{
services.AddGmailSender(options =>
{
// Ruta al archivo de credenciales que descargaste de Google Cloud
options.ClientSecretsFilePath = "client_secrets.json";
// (Opcional) Carpeta donde se guardará el token de acceso del usuario
options.TokenStoragePath = "GoogleTokens";
// (Opcional) Nombre de la aplicación que se mostrará en la pantalla de consentimiento
options.ApplicationName = "Mi Super Aplicación";
});
})
.Build();
3. Inyectar y Usar el Servicio
Ahora puedes inyectar la interfaz IEmailService
en cualquier clase que la necesite (controlador, servicio, etc.) y usar su método SendEmailAsync
.
using GmailSender.Abstractions;
using GmailSender.Aggregates;
// Obtén el servicio del proveedor de servicios
var emailService = host.Services.GetRequiredService<IEmailService>();
// Crea el mensaje
var message = new EmailMessage(
To: "destinatario@ejemplo.com",
Subject: "¡Hola desde GmailSender!",
Body: "Este es un correo de prueba enviado desde la librería GmailSender."
);
// Envía el correo
try
{
Console.WriteLine("Intentando enviar el correo...");
await emailService.SendEmailAsync(message, CancellationToken.None);
Console.WriteLine("¡Correo enviado con éxito!");
}
catch (Exception ex)
{
Console.WriteLine($"Ocurrió un error: {ex.Message}");
}
La primera vez que se ejecute SendEmailAsync
, se abrirá una ventana del navegador pidiendo al usuario que inicie sesión en su cuenta de Google y autorice la aplicación. Después de eso, el token de autorización se guardará en la carpeta especificada en TokenStoragePath
y no se volverá a pedir, a menos que el token expire o sea revocado.
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 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. |
-
net9.0
- Google.Apis.Auth (>= 1.71.0)
- Google.Apis.Gmail.v1 (>= 1.70.0.3833)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 9.0.9)
- Microsoft.Extensions.Options (>= 9.0.9)
- MimeKit (>= 4.13.0)
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 |
---|---|---|
1.0.0 | 99 | 9/26/2025 |