이 라이브러리를 사용하면 .NET에서 C#을 통해 Twilio SendGrid 웹 API v3을 빠르고 쉽게 사용할 수 있습니다.
이 라이브러리의 버전 9.X.X+는 새로운 v3 /mail/send를 포함하여 모든 Twilio SendGrid Web API v3 엔드포인트를 완벽하게 지원합니다.
이 라이브러리에 대한 업데이트는 CHANGELOG 및 릴리스를 참조하세요.
지속적인 지원에 감사드립니다. 감사합니다!
Twilio SendGrid UI에서 API 키를 가져옵니다.
Twilio SendGrid API 키를 환경 변수 또는 Web.config에 저장하여 관리하세요. 데이터와 구성 설정을 별도로 유지하는 것이 좋습니다. 이렇게 하면 코드를 변경하지 않고도 Twilio SendGrid API 키를 변경할 수 있습니다. 또한 중요한 데이터를 코드에 직접 저장하지 않는 것이 좋습니다.
UI를 사용하여 환경 변수를 설정합니다.
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 " ) ;
C# 프로젝트에서 Twilio SendGrid를 사용하려면 Github 리포지토리에서 직접 Twilio SendGrid C# .NET 라이브러리를 다운로드하거나 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
사람의 받은편지함에 이메일이 있어야 합니다. UI에서 이메일 상태를 확인할 수 있습니다. 또는 이벤트 웹훅을 사용하여 귀하가 선택한 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 ) ;
또는 종속성 주입을 사용할 때
services . AddSendGrid ( options =>
{
options . ApiKey = Environment . GetEnvironmentVariable ( " SENDGRID_API_KEY " ) ;
} )
. ConfigurePrimaryHttpMessageHandler ( _ => new HttpClientHandler ( )
{
Proxy = new WebProxy ( new Uri ( " http://proxy:1337 " ) ) ,
UseProxy = true
} ) ;
다음은 트랜잭션 템플릿을 사용하여 이메일을 보내는 방법과 같은 일반적인 API 사용 사례의 몇 가지 예입니다.
우리는 우리 도서관에 대한 기여를 장려합니다. (당신은 멋진 기념품을 얻을 수도 있습니다.) 자세한 내용은 CONTRIBUTING 가이드를 참조하십시오.
빠른 링크:
일반적인 라이브러리 문제에 대해서는 문제 해결 가이드를 참조하세요.
sendgrid-csharp는 Twilio SendGrid, Inc.에서 유지 관리하고 자금을 지원합니다. sendgrid-csharp의 이름과 로고는 Twilio SendGrid, Inc.의 상표입니다.
SendGrid 사용에 도움이 필요하면 Twilio SendGrid 지원 도움말 센터를 확인하세요.
MIT 라이센스 (MIT)