ApplicaDemo.GmailSender 1.0.0

dotnet add package ApplicaDemo.GmailSender --version 1.0.0
                    
NuGet\Install-Package ApplicaDemo.GmailSender -Version 1.0.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="ApplicaDemo.GmailSender" Version="1.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="ApplicaDemo.GmailSender" Version="1.0.0" />
                    
Directory.Packages.props
<PackageReference Include="ApplicaDemo.GmailSender" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add ApplicaDemo.GmailSender --version 1.0.0
                    
#r "nuget: ApplicaDemo.GmailSender, 1.0.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package ApplicaDemo.GmailSender@1.0.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=ApplicaDemo.GmailSender&version=1.0.0
                    
Install as a Cake Addin
#tool nuget:?package=ApplicaDemo.GmailSender&version=1.0.0
                    
Install as a Cake Tool

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 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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