Отправка электронных сообщений через MailGun и SendGrid
Contents
[
Hide
]
Отправка сообщений с использованием MailGun и SendGrid
Aspose.Email предоставляет возможность отправки электронных сообщений с использованием сервисов MailGun или SendGrid. Его унифицированный API позволяет инициализировать клиент, подготавливать и отправлять электронное сообщение.
Сначала важно настроить параметры в зависимости от сервиса, который будет использоваться для отправки сообщений. Класс DeliveryServiceOptions поможет вам с этим. Следующий пример кода показывает, как настроить параметры для сервисов.
Опции клиента MailGun:
string domain = "YOUR_MAILGUN_DOMEN";
string privApiKey = "YOUR_MAILGUN_PRIVATE_API_KEY";
var opt = new MailgunClientOptions { Domain = domain, ApiKey = privApiKey };
Опции клиента SendGrid:
string privApiKey = "YOUR_SENDGRID_PRIVATE_API_KEY";
var opt = new SendGridClientOptions { ApiKey = privApiKey };
Чтобы подготовить и отправить сообщение, используйте следующий пример кода и шаги:
- Создайте экземпляр интерфейса IDeliveryServiceClient.
- Создайте новое сообщение eml, используя класс MailMessage. Укажите его свойства.
- Используйте метод Send объекта клиента для отправки электронной почты. Результат операции отправки сохраняется в переменной resp.
- Если операция отправки не была успешной (resp.Successful равно false), код enters enters цикл foreach для перебора коллекции ErrorMessages объекта resp. Каждое сообщение об ошибке выводится на консоль с помощью Console.WriteLine.
IDeliveryServiceClient client = DeliveryServiceClientFactory.Get(opt);
MailMessage eml = new MailMessage(fromAddress, toAddress, subject, body);
var resp = client.Send(eml);
if (!resp.Successful)
{
foreach (var error in resp.ErrorMessages)
{
Console.WriteLine(error);
}
}
Асинхронная отправка сообщений
MailMessage eml = new MailMessage(fromAddress, toAddress, subject, body);
var sendTask = client.SendAsync(eml);
sendTask.Wait();
if (!sendTask.Result.Successful)
{
foreach (var error in sendTask.Result.ErrorMessages)
{
Console.WriteLine(error);
}
}