.NET용 Azure Communication Email 클라이언트 라이브러리 - 버전 1.0.0
이 패키지에는 Email 대한 Azure Communication Services 대한 C# SDK가 포함되어 있습니다.
소스 코드 | 패키지(NuGet) | 제품 설명서
시작
패키지 설치
NuGet을 사용하여 .NET용 Azure Communication Email 클라이언트 라이브러리를 설치합니다.
dotnet add package Azure.Communication.Email
필수 구성 요소
활성 도메인이 있는 Azure 구독, Communication Service 리소스 및 Email Communication Resource가 필요합니다.
이러한 리소스를 만들려면 Azure Portal, Azure PowerShell 또는 .NET 관리 클라이언트 라이브러리를 사용할 수 있습니다.
주요 개념
EmailClient
에서는 전자 메일 메시지를 보내는 기능을 제공합니다.
문 사용
using Azure.Communication.Email;
클라이언트 인증
Email 클라이언트는 Azure Portal의 Azure Communication Resource에서 가져온 연결 문자열을 사용하여 인증할 수 있습니다.
var connectionString = "<connection_string>"; // Find your Communication Services resource in the Azure portal
EmailClient emailClient = new EmailClient(connectionString);
또는 Email 클라이언트는 유효한 토큰 자격 증명을 사용하여 인증할 수도 있습니다. 이 옵션을 사용하는 경우 인증을 위해 AZURE_CLIENT_SECRET
, AZURE_CLIENT_ID
및 AZURE_TENANT_ID
환경 변수를 설정해야 합니다.
string endpoint = "<endpoint_url>";
TokenCredential tokenCredential = new DefaultAzureCredential();
tokenCredential = new DefaultAzureCredential();
EmailClient emailClient = new EmailClient(new Uri(endpoint), tokenCredential);
예제
상태 대한 자동 폴링을 사용하여 간단한 전자 메일 메시지 보내기
전자 메일 메시지를 보내려면 에서 또는 함수의 Send
간단한 오버로드를 호출합니다EmailClient
.SendAsync
try
{
var emailSendOperation = emailClient.Send(
wait: WaitUntil.Completed,
senderAddress: "<Send email address>" // The email address of the domain registered with the Communication Services resource
recipientAddress: "<recipient email address>"
subject: "This is the subject",
htmlContent: "<html><body>This is the html body</body></html>");
Console.WriteLine($"Email Sent. Status = {emailSendOperation.Value.Status}");
/// Get the OperationId so that it can be used for tracking the message for troubleshooting
string operationId = emailSendOperation.Id;
Console.WriteLine($"Email operation id = {operationId}");
}
catch ( RequestFailedException ex )
{
/// OperationID is contained in the exception message and can be used for troubleshooting purposes
Console.WriteLine($"Email send operation failed with error code: {ex.ErrorCode}, message: {ex.Message}");
}
상태 대한 수동 폴링이 포함된 간단한 전자 메일 메시지 보내기
전자 메일 메시지를 보내려면 에서 또는 함수의 Send
간단한 오버로드를 호출합니다EmailClient
.SendAsync
/// Send the email message with WaitUntil.Started
var emailSendOperation = await emailClient.SendAsync(
wait: WaitUntil.Started,
senderAddress: "<Send email address>" // The email address of the domain registered with the Communication Services resource
recipientAddress: "<recipient email address>"
subject: "This is the subject",
htmlContent: "<html><body>This is the html body</body></html>");
/// Call UpdateStatus on the email send operation to poll for the status
/// manually.
try
{
while (true)
{
await emailSendOperation.UpdateStatusAsync();
if (emailSendOperation.HasCompleted)
{
break;
}
await Task.Delay(100);
}
if (emailSendOperation.HasValue)
{
Console.WriteLine($"Email queued for delivery. Status = {emailSendOperation.Value.Status}");
}
}
catch (RequestFailedException ex)
{
Console.WriteLine($"Email send failed with Code = {ex.ErrorCode} and Message = {ex.Message}");
}
/// Get the OperationId so that it can be used for tracking the message for troubleshooting
string operationId = emailSendOperation.Id;
Console.WriteLine($"Email operation id = {operationId}");
더 많은 옵션을 사용하여 전자 메일 메시지 보내기
전자 메일 메시지를 보내려면 매개 변수를 사용하는 에서 EmailClient
또는 SendAsync
함수의 Send
오버로드를 EmailMessage
호출합니다.
// Create the email content
var emailContent = new EmailContent("This is the subject")
{
PlainText = "This is the body",
Html = "<html><body>This is the html body</body></html>"
};
// Create the EmailMessage
var emailMessage = new EmailMessage(
senderAddress: "<Send email address>" // The email address of the domain registered with the Communication Services resource
recipientAddress: "<recipient email address>"
content: emailContent);
try
{
var emailSendOperation = emailClient.Send(
wait: WaitUntil.Completed,
message: emailMessage);
Console.WriteLine($"Email Sent. Status = {emailSendOperation.Value.Status}");
/// Get the OperationId so that it can be used for tracking the message for troubleshooting
string operationId = emailSendOperation.Id;
Console.WriteLine($"Email operation id = {operationId}");
}
catch ( RequestFailedException ex )
{
/// OperationID is contained in the exception message and can be used for troubleshooting purposes
Console.WriteLine($"Email send operation failed with error code: {ex.ErrorCode}, message: {ex.Message}");
}
여러 받는 사람에게 전자 메일 메시지 보내기
여러 받는 사람에게 전자 메일 메시지를 보내려면 각 레시피 유형에 대한 개체를 개체에 EmailRecipient
추가 EmailAddress
합니다.
// Create the email content
var emailContent = new EmailContent("This is the subject")
{
PlainText = "This is the body",
Html = "<html><body>This is the html body</body></html>"
};
// Create the To list
var toRecipients = new List<EmailAddress>
{
new EmailAddress(
address: "<recipient email address>"
displayName: "<recipient displayname>"
new EmailAddress(
address: "<recipient email address>"
displayName: "<recipient displayname>"
};
// Create the CC list
var ccRecipients = new List<EmailAddress>
{
new EmailAddress(
address: "<recipient email address>"
displayName: "<recipient displayname>"
new EmailAddress(
address: "<recipient email address>"
displayName: "<recipient displayname>"
};
// Create the BCC list
var bccRecipients = new List<EmailAddress>
{
new EmailAddress(
address: "<recipient email address>"
displayName: "<recipient displayname>"
new EmailAddress(
address: "<recipient email address>"
displayName: "<recipient displayname>"
};
var emailRecipients = new EmailRecipients(toRecipients, ccRecipients, bccRecipients);
// Create the EmailMessage
var emailMessage = new EmailMessage(
senderAddress: "<Send email address>" // The email address of the domain registered with the Communication Services resource
emailRecipients,
emailContent);
try
{
EmailSendOperation emailSendOperation = emailClient.Send(WaitUntil.Completed, emailMessage);
Console.WriteLine($"Email Sent. Status = {emailSendOperation.Value.Status}");
/// Get the OperationId so that it can be used for tracking the message for troubleshooting
string operationId = emailSendOperation.Id;
Console.WriteLine($"Email operation id = {operationId}");
}
catch ( RequestFailedException ex )
{
/// OperationID is contained in the exception message and can be used for troubleshooting purposes
Console.WriteLine($"Email send operation failed with error code: {ex.ErrorCode}, message: {ex.Message}");
}
첨부 파일이 있는 전자 메일 보내기
Azure Communication Services 첨부 파일이 있는 전자 메일 보내기를 지원합니다.
// Create the EmailMessage
var emailMessage = new EmailMessage(
senderAddress: "<Send email address>" // The email address of the domain registered with the Communication Services resource
recipientAddress: "<recipient email address>"
content: emailContent);
var filePath = "<path to your file>";
var attachmentName = "<name of your attachment>";
var contentType = MediaTypeNames.Text.Plain;
var content = new BinaryData(System.IO.File.ReadAllBytes(filePath));
var emailAttachment = new EmailAttachment(attachmentName, contentType, content);
emailMessage.Attachments.Add(emailAttachment);
try
{
EmailSendOperation emailSendOperation = emailClient.Send(WaitUntil.Completed, emailMessage);
Console.WriteLine($"Email Sent. Status = {emailSendOperation.Value.Status}");
/// Get the OperationId so that it can be used for tracking the message for troubleshooting
string operationId = emailSendOperation.Id;
Console.WriteLine($"Email operation id = {operationId}");
}
catch ( RequestFailedException ex )
{
/// OperationID is contained in the exception message and can be used for troubleshooting purposes
Console.WriteLine($"Email send operation failed with error code: {ex.ErrorCode}, message: {ex.Message}");
}
문제 해결
실패 RequestFailedException
한 요청에 대 한 서비스 응답으로 throw 됩니다. 예외에는 서비스에서 반환된 응답 코드에 대한 정보가 포함됩니다.
다음 단계
참여
이 프로젝트에 대한 기여와 제안을 환영합니다. 대부분의 경우 기여하려면 권한을 부여하며 실제로 기여를 사용할 권한을 당사에 부여한다고 선언하는 CLA(기여자 라이선스 계약)에 동의해야 합니다. 자세한 내용은 cla.microsoft.com.
이 프로젝트에는 Microsoft Open Source Code of Conduct(Microsoft 오픈 소스 준수 사항)가 적용됩니다. 자세한 내용은 Code of Conduct FAQ(규정 FAQ)를 참조하세요. 또는 추가 질문이나 의견은 opencode@microsoft.com으로 문의하세요.