Клиентская библиотека Email связи Azure для .NET версии 1.0.0
Этот пакет содержит пакет SDK для C# для Службы коммуникации Azure для Email.
Исходный код | Пакет (NuGet) | Документация по продукту
Начало работы
Установка пакета
Установите клиентную библиотеку Email связи Azure для .NET с помощью NuGet:
dotnet add package Azure.Communication.Email
Предварительные требования
Вам потребуется подписка Azure, ресурс Службы коммуникации и ресурс Email связи с активным доменом.
Для создания этих ресурсов можно использовать портал Azure, Azure PowerShell или клиентская библиотека управления .NET.
Основные понятия
EmailClient
предоставляет функции для отправки сообщений электронной почты .
Инструкции using
using Azure.Communication.Email;
Аутентификация клиента
Email клиентов можно пройти проверку подлинности с помощью строки подключения, полученной из ресурса связи Azure на портале Azure.
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
или SendAsync
функцию EmailClient
из .
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
или SendAsync
функцию EmailClient
из .
/// 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}");
Отправка сообщения электронной почты с дополнительными параметрами
Чтобы отправить сообщение электронной почты, вызовите перегрузку Send
или SendAsync
функцию из , EmailClient
которая принимает 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}");
}
Отправка сообщения электронной почты нескольким получателям
Чтобы отправить сообщение электронной почты нескольким получателям, добавьте EmailAddress
в объект объект объект для каждого типа EmailRecipient
рецепта.
// 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 поддерживает отправку сообщений электронной почты с вложениями.
// 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
в качестве ответа службы для любых неудачных запросов. Исключение содержит сведения о том, какой код ответа был возвращен службой.
Дальнейшие действия
Участие
На этом проекте приветствуются публикации и предложения. Для участия в большинстве процессов по разработке документации необходимо принять лицензионное соглашение участника (CLA), в котором указывается, что вы предоставляете нам права на использование ваших публикаций. Дополнительные сведения см . на странице cla.microsoft.com.
В рамках этого проекта действуют правила поведения в отношении продуктов с открытым исходным кодом Майкрософт. Дополнительные сведения см. в разделе часто задаваемых вопросов о правилах поведения или обратитесь к opencode@microsoft.com с любыми дополнительными вопросами или комментариями.