Esta biblioteca permite que você use de forma rápida e fácil a API Web Twilio SendGrid v3 via C# com .NET.
A versão 9.X.X+ desta biblioteca fornece suporte completo para todos os endpoints v3 da API Web Twilio SendGrid, incluindo o novo v3 /mail/send.
Para atualizações desta biblioteca, consulte nosso CHANGELOG e lançamentos.
Agradecemos seu apoio contínuo, obrigado!
Obtenha sua chave de API na IU do Twilio SendGrid.
Gerencie suas chaves de API Twilio SendGrid armazenando-as em variáveis de ambiente ou em Web.config. É uma boa prática manter seus dados e definições de configuração separados. Dessa forma, você pode alterar sua chave de API Twilio SendGrid sem alterar seu código. Além disso, desaconselhamos fortemente o armazenamento de dados confidenciais diretamente em seu código.
Configure variáveis de ambiente usando a IU:
Configure variáveis de ambiente usando CMD:
Aqui estão alguns exemplos para obter e definir chaves de API programaticamente:
# 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 o Twilio SendGrid em seu projeto C#, você pode baixar as bibliotecas .NET do Twilio SendGrid C# diretamente de nosso repositório Github ou, se tiver o gerenciador de pacotes NuGet instalado, pode obtê-las automaticamente:
dotnet add package SendGrid
# use Twilio SendGrid with HttpClientFactory
dotnet add package SendGrid.Extensions.DependencyInjection
Depois de instalar a biblioteca Twilio SendGrid, você poderá incluir chamadas para ela em seu código. Para obter exemplos de implementações, consulte o exemplo do .NET Core e as pastas de exemplo do .NET 4.5.2.
Consulte o arquivo .csproj.
A seguir está o código mínimo necessário para enviar um email simples. Use este exemplo e modifique as variáveis apiKey
, from
e to
:
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 ) ;
}
}
Após executar o código acima, response.StatusCode
deverá ser 202
e você deverá ter um e-mail na caixa de entrada to
destinatário. Você pode verificar o status do seu e-mail na IU. Alternativamente, podemos postar eventos em uma URL de sua escolha usando nosso Event Webhook. Isso fornece dados sobre os eventos que ocorrem enquanto o Twilio SendGrid processa seu email.
Para casos mais avançados, você mesmo pode criar o objeto SendGridMessage com estas configurações mínimas obrigatórias:
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 ) ;
}
}
Você pode encontrar um exemplo de todos os recursos de e-mail aqui.
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 ) ;
}
}
SendGrid.Extensions.DependencyInjection é obrigatório
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 ) ;
Ou ao usar DependencyInjection
services . AddSendGrid ( options =>
{
options . ApiKey = Environment . GetEnvironmentVariable ( " SENDGRID_API_KEY " ) ;
} )
. ConfigurePrimaryHttpMessageHandler ( _ => new HttpClientHandler ( )
{
Proxy = new WebProxy ( new Uri ( " http://proxy:1337 " ) ) ,
UseProxy = true
} ) ;
Aqui estão alguns exemplos de casos de uso comuns de API, como enviar um email com um modelo transacional.
Incentivamos a contribuição para nossa biblioteca (você pode até ganhar alguns brindes bacanas). Consulte nosso guia de CONTRIBUIÇÃO para obter detalhes.
Links rápidos:
Consulte nosso guia de solução de problemas para problemas comuns de biblioteca.
sendgrid-csharp é mantido e financiado pela Twilio SendGrid, Inc. Os nomes e logotipos de sendgrid-csharp são marcas registradas da Twilio SendGrid, Inc.
Se precisar de ajuda para usar o SendGrid, consulte o Centro de Ajuda de suporte do Twilio SendGrid.
A Licença MIT (MIT)