Esta biblioteca le permite utilizar rápida y fácilmente la API web Twilio SendGrid v3 a través de C# con .NET.
La versión 9.X.X+ de esta biblioteca proporciona soporte completo para todos los puntos finales de Twilio SendGrid Web API v3, incluido el nuevo v3 /mail/send.
Para obtener actualizaciones de esta biblioteca, consulte nuestro REGISTRO DE CAMBIOS y lanzamientos.
Agradecemos su continuo apoyo, ¡gracias!
Obtenga su clave API de la interfaz de usuario de Twilio SendGrid.
Administre sus claves API de Twilio SendGrid almacenándolas en Variables de entorno o en Web.config. Es una buena práctica mantener separados los datos y los ajustes de configuración. De esta manera puede cambiar su clave API de Twilio SendGrid sin cambiar su código. Además, recomendamos encarecidamente no almacenar datos confidenciales directamente en su código.
Configure las variables de entorno mediante la interfaz de usuario:
Configurar variables de entorno mediante CMD:
A continuación se muestran algunos ejemplos para obtener y configurar claves API mediante programación:
# Get Environment Variable
var apiKey = Environment . GetEnvironmentVariable ( " SENDGRID_API_KEY " ) ;
# Set Environment Variable
var setKey = Environment . SetEnvironmentVariable ( " SENDGRID_API_KEY " , " YOUR_API_KEY " ) ;
Para usar Twilio SendGrid en su proyecto C#, puede descargar las bibliotecas .NET de Twilio SendGrid C# directamente desde nuestro repositorio de Github o, si tiene instalado el administrador de paquetes NuGet, puede obtenerlas automáticamente:
dotnet add package SendGrid
# use Twilio SendGrid with HttpClientFactory
dotnet add package SendGrid.Extensions.DependencyInjection
Una vez que tenga instalada la biblioteca Twilio SendGrid, puede incluir llamadas a ella en su código. Para ver implementaciones de ejemplo, consulte las carpetas Ejemplo de .NET Core y Ejemplo de .NET 4.5.2.
Consulte el archivo .csproj.
El siguiente es el código mínimo necesario para enviar un correo electrónico simple. Utilice este ejemplo y modifique apiKey
, from
y to
las variables:
using System ;
using System . Threading . Tasks ;
using SendGrid ;
using SendGrid . Helpers . Mail ;
class Program
{
static async Task Main ( )
{
var apiKey = Environment . GetEnvironmentVariable ( " SENDGRID_API_KEY " ) ;
var client = new SendGridClient ( apiKey ) ;
var from = new EmailAddress ( " [email protected] " , " Example User " ) ;
var subject = " Sending with Twilio SendGrid is Fun " ;
var to = new EmailAddress ( " [email protected] " , " Example User " ) ;
var plainTextContent = " and easy to do anywhere, even with C# " ;
var htmlContent = " and easy to do anywhere, even with C# " ;
var msg = MailHelper . CreateSingleEmail ( from , to , subject , plainTextContent , htmlContent ) ;
var response = await client . SendEmailAsync ( msg ) . ConfigureAwait ( false ) ;
}
}
Después de ejecutar el código anterior, response.StatusCode
debe ser 202
y debe tener un correo electrónico en la bandeja de entrada to
destinatario. Puede verificar el estado de su correo electrónico en la interfaz de usuario. Alternativamente, podemos publicar eventos en una URL de su elección utilizando nuestro Webhook de eventos. Esto le brinda datos sobre los eventos que ocurren cuando Twilio SendGrid procesa su correo electrónico.
Para casos más avanzados, puede crear el objeto SendGridMessage usted mismo con estas configuraciones mínimas requeridas:
using System ;
using System . Threading . Tasks ;
using SendGrid ;
using SendGrid . Helpers . Mail ;
class Program
{
static async Task Main ( )
{
var apiKey = Environment . GetEnvironmentVariable ( " SENDGRID_API_KEY " ) ;
var client = new SendGridClient ( apiKey ) ;
var msg = new SendGridMessage ( )
{
From = new EmailAddress ( " [email protected] " , " DX Team " ) ,
Subject = " Sending with Twilio SendGrid is Fun " ,
PlainTextContent = " and easy to do anywhere, even with C# " ,
HtmlContent = " and easy to do anywhere, even with C# "
} ;
msg . AddTo ( new EmailAddress ( " [email protected] " , " Test User " ) ) ;
var response = await client . SendEmailAsync ( msg ) . ConfigureAwait ( false ) ;
}
}
Puede encontrar un ejemplo de todas las funciones de correo electrónico aquí.
using System ;
using System . Threading . Tasks ;
using SendGrid ;
class Program
{
static async Task Main ( )
{
var apiKey = Environment . GetEnvironmentVariable ( " SENDGRID_API_KEY " ) ;
var client = new SendGridClient ( apiKey ) ;
var queryParams = @"{'limit': 100}" ;
var response = await client . RequestAsync ( method : SendGridClient . Method . GET , urlPath : " suppression/bounces " ,
queryParams : queryParams ) . ConfigureAwait ( false ) ;
}
}
Se requiere SendGrid.Extensions.DependencyInjection
using System ;
using System . Threading . Tasks ;
using Microsoft . Extensions . DependencyInjection ;
using SendGrid ;
using SendGrid . Extensions . DependencyInjection ;
using SendGrid . Helpers . Mail ;
class Program
{
static async Task Main ( )
{
var services = ConfigureServices ( new ServiceCollection ( ) ) . BuildServiceProvider ( ) ;
var client = services . GetRequiredService < ISendGridClient > ( ) ;
var msg = new SendGridMessage ( )
{
From = new EmailAddress ( " [email protected] " , " Example User " ) ,
Subject = " Sending with Twilio SendGrid is Fun "
} ;
msg . AddContent ( MimeType . Text , " and easy to do anywhere, even with C# " ) ;
msg . AddTo ( new EmailAddress ( " [email protected] " , " Example User " ) ) ;
var response = await client . SendEmailAsync ( msg ) . ConfigureAwait ( false ) ;
}
private static IServiceCollection ConfigureServices ( IServiceCollection services )
{
services . AddSendGrid ( options =>
{
options . ApiKey = Environment . GetEnvironmentVariable ( " SENDGRID_API_KEY " ) ;
} ) ;
return services ;
}
}
var apiKey = Environment . GetEnvironmentVariable ( " SENDGRID_API_KEY " ) ;
var proxy = new WebProxy ( " http://proxy:1337 " ) ;
var client = new SendGridClient ( proxy , apiKey ) ;
O cuando se usa DependencyInjection
services . AddSendGrid ( options =>
{
options . ApiKey = Environment . GetEnvironmentVariable ( " SENDGRID_API_KEY " ) ;
} )
. ConfigurePrimaryHttpMessageHandler ( _ => new HttpClientHandler ( )
{
Proxy = new WebProxy ( new Uri ( " http://proxy:1337 " ) ) ,
UseProxy = true
} ) ;
A continuación se muestran algunos ejemplos de casos de uso de API comunes, como cómo enviar un correo electrónico con una plantilla transaccional.
Alentamos la contribución a nuestra biblioteca (incluso podría conseguir algún regalo ingenioso); consulte nuestra guía CONTRIBUCIÓN para obtener más detalles.
Enlaces rápidos:
Consulte nuestra guía de solución de problemas para conocer problemas comunes de la biblioteca.
sendgrid-csharp es mantenido y financiado por Twilio SendGrid, Inc. Los nombres y logotipos de sendgrid-csharp son marcas comerciales de Twilio SendGrid, Inc.
Si necesita ayuda para usar SendGrid, consulte el Centro de ayuda de soporte de Twilio SendGrid.
La licencia MIT (MIT)