Эта библиотека позволяет быстро и легко использовать веб-API Twilio SendGrid v3 через C# с .NET.
Версия 9.X.X+ этой библиотеки обеспечивает полную поддержку всех конечных точек Twilio SendGrid Web API v3, включая новую версию v3 /mail/send.
Обновления этой библиотеки см. в нашем журнале изменений и выпусках.
Мы ценим вашу постоянную поддержку, спасибо!
Получите свой ключ API из пользовательского интерфейса Twilio SendGrid.
Управляйте ключами API Twilio SendGrid, сохраняя их в переменных среды или в Web.config. Рекомендуется хранить данные и параметры конфигурации отдельно. Таким образом, вы можете изменить ключ API Twilio SendGrid, не меняя код. Кроме того, мы настоятельно не рекомендуем хранить конфиденциальные данные непосредственно в вашем коде.
Настройте переменные среды с помощью пользовательского интерфейса:
Настройка переменных среды с помощью CMD:
Вот несколько примеров программного получения и установки ключей API:
# Get Environment Variable
var apiKey = Environment . GetEnvironmentVariable ( " SENDGRID_API_KEY " ) ;
# Set Environment Variable
var setKey = Environment . SetEnvironmentVariable ( " SENDGRID_API_KEY " , " YOUR_API_KEY " ) ;
Чтобы использовать Twilio SendGrid в своем проекте C#, вы можете либо загрузить библиотеки Twilio SendGrid C# .NET непосредственно из нашего репозитория Github, либо, если у вас установлен менеджер пакетов NuGet, вы можете получить их автоматически:
dotnet add package SendGrid
# use Twilio SendGrid with HttpClientFactory
dotnet add package SendGrid.Extensions.DependencyInjection
После установки библиотеки Twilio SendGrid вы можете включать ее вызовы в свой код. Примеры реализаций см. в папках «Пример .NET Core» и «Пример .NET 4.5.2».
См. файл .csproj.
Ниже приведен минимально необходимый код для отправки простого электронного письма. Используйте этот пример и измените apiKey
from
и 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 ) ;
}
}
После выполнения приведенного выше кода response.StatusCode
должен иметь значение 202
, и в почтовом ящике to
должно появиться электронное письмо. Вы можете проверить статус вашей электронной почты в пользовательском интерфейсе. Кроме того, мы можем публиковать события по выбранному вами URL-адресу с помощью нашего веб-перехватчика событий. Это дает вам данные о событиях, которые происходят, когда Twilio SendGrid обрабатывает вашу электронную почту.
В более сложных случаях вы можете создать объект SendGridMessage самостоятельно со следующими минимальными необходимыми настройками:
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 ) ;
}
}
Здесь вы можете найти пример всех функций электронной почты.
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.
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 ) ;
Или при использовании DependencyInjection
services . AddSendGrid ( options =>
{
options . ApiKey = Environment . GetEnvironmentVariable ( " SENDGRID_API_KEY " ) ;
} )
. ConfigurePrimaryHttpMessageHandler ( _ => new HttpClientHandler ( )
{
Proxy = new WebProxy ( new Uri ( " http://proxy:1337 " ) ) ,
UseProxy = true
} ) ;
Вот несколько примеров распространенных случаев использования API, например, как отправить электронное письмо с шаблоном транзакций.
Мы поощряем вклад в нашу библиотеку (возможно, вы даже получите несколько отличных подарков). Подробности см. в нашем руководстве «ВНОСИМ ВКЛАД».
Быстрые ссылки:
Пожалуйста, ознакомьтесь с нашим руководством по устранению распространенных проблем с библиотекой.
sendgrid-csharp поддерживается и финансируется Twilio SendGrid, Inc. Названия и логотипы sendgrid-csharp являются торговыми марками Twilio SendGrid, Inc.
Если вам нужна помощь по использованию SendGrid, посетите Справочный центр поддержки Twilio SendGrid.
Лицензия MIT (MIT)