В этом блоге вы узнаете, как создавать сообщения электронной почты Outlook (включая MSG, EML, EMLX или MHTML) и отправлять электронные письма синхронно или асинхронно с помощью C# в .NET или .NET Core.
Электронная почта стала основным источником обмена сообщениями и обмена контентом, таким как документы, изображения или другие типы файлов. Частота использования электронной почты больше в онлайн-системах для обмена важными уведомлениями или документами с несколькими организациями. В таких случаях подготовка шаблона и отправка электронных писем нескольким заинтересованным сторонам вручную может быть трудоемкой и беспокойной задачей.
Здесь возникает потребность в службе автоматизации электронной почты, с помощью которой вы можете легко создавать и отправлять электронные письма. Итак, в этой статье я научу вас создавать сообщения электронной почты популярных форматов Outlook и программно автоматизировать процесс отправки писем. Прочитав эту статью, вы сможете:
- создать и сохранить сообщение электронной почты на C#,
- создать электронное письмо с телом HTML на C#,
- создать электронное письмо с определенной кодировкой на C#,
- отправлять электронные письма синхронно, используя SMTP в C#,
- отправлять электронные письма асинхронно, используя SMTP в C#,
- и отправлять массовые электронные письма на C#.
C# API для создания и отправки электронных писем Outlook
Чтобы автоматизировать процесс создания и отправки сообщений электронной почты, мы будем использовать Aspose.Email для .NET, который представляет собой мощный API для работы с электронной почтой и ее обработки. Он поддерживает популярные форматы электронной почты, включая сообщения MS Outlook, такие как MSG, EML/EMLX и т. д. Вы можете напрямую загрузить DLL API или установить его через Диспетчер пакетов NuGet или консоль диспетчера пакетов в Visual Studio. .
PM> Install-Package Aspose.Email
После того, как вы создали приложение C# (консоль, ASP.NET и т. д.) и установили Aspose.Email для .NET, вы можете начать создавать и отправлять электронные письма на C#.
Создание электронной почты Outlook на C#
Для создания сообщений электронной почты Outlook или управления ими Aspose.Email предоставляет класс MailMessage. Этот класс позволяет установить все свойства сообщения электронной почты (Тема, Кому, От и Тело), добавить вложения и сохранить сообщение в различных форматах электронной почты, таких как EML, MSG, MHTML и т. д. Ниже приведены шаги для создания сообщение электронной почты:
- Создайте экземпляр класса MailMessage.
- Задайте свойства сообщения.
- Сохраните сообщение электронной почты с помощью метода MailMessage.Save().
В следующем примере кода показано, как создать и сохранить сообщение электронной почты на C#.
// Создайте новый экземпляр класса MailMessage
MailMessage message = new MailMessage();
// Установите тему сообщения, тело и информацию об отправителе
message.Subject = "New message created by Aspose.Email for .NET";
message.Body = "This is the body of the email.";
message.From = new MailAddress("from@domain.com", "Sender Name", false);
// Добавить к получателям и получателям копии
message.To.Add(new MailAddress("to1@domain.com", "Recipient 1", false));
message.CC.Add(new MailAddress("cc1@domain.com", "Recipient 3", false));
// Добавить вложения
message.Attachments.Add(new Attachment("word.docx"));
// Сохранить сообщение в форматах EML, EMLX, MSG и MHTML
message.Save("EmailMessage.eml", SaveOptions.DefaultEml);
message.Save("EmailMessage.emlx", SaveOptions.CreateSaveOptions(MailMessageSaveType.EmlxFormat));
message.Save("EmailMessage.msg", SaveOptions.DefaultMsgUnicode);
message.Save("EmailMessage.mhtml", SaveOptions.DefaultMhtml);
Создайте электронное письмо Outlook с телом HTML в C#
Теги HTML используются для того, чтобы сделать тело письма более структурированным, презентабельным и обогащенным различными элементами, такими как таблицы, изображения, списки и т. д. Если вы хотите создать электронное письмо с телом в формате HTML, вы можете использовать свойство MailMessage.HtmlBody. В следующем примере кода показано, как создать сообщение электронной почты Outlook с телом HTML на C#.
// Создайте новый экземпляр класса MailMessage
MailMessage message = new MailMessage();
// Установите тему сообщения, тело HTML и информацию об отправителе
message.Subject = "New message created by Aspose.Email for .NET";
message.HtmlBody = "<b>This line is in bold.</b> <br/> <br/>" + "<font color=blue>This line is in blue color</font>";
message.From = new MailAddress("from@domain.com", "Sender Name", false);
// Добавить к получателям и получателям копии
message.To.Add(new MailAddress("to1@domain.com", "Recipient 1", false));
message.CC.Add(new MailAddress("cc1@domain.com", "Recipient 3", false));
// Сохранить сообщение в формате EML/EMLX/MSG/MHTML
message.Save("EmailMessage.eml", SaveOptions.DefaultEml);
Создайте электронную почту Outlook с определенной кодировкой на C#
Вы также можете указать желаемый стандарт кодирования, чтобы сообщить браузеру или почтовому приложению о том, как интерпретировать символы в теле письма. Для этого используется свойство MailMessage.BodyEncoding. В следующем примере кода показано, как задать кодировку тела при создании электронной почты Outlook с помощью C#.
// Создайте новый экземпляр класса MailMessage
MailMessage message = new MailMessage();
// Установите тему сообщения, текст HTML, информацию об отправителе и получателе.
message.Subject = "New message created by Aspose.Email for .NET";
message.HtmlBody = "<b>This line is in bold.</b> <br/> <br/>" + "<font color=blue>This line is in blue color</font>";
message.From = new MailAddress("from@domain.com", "Sender Name", false);
message.To.Add(new MailAddress("to1@domain.com", "Recipient 1", false));
// Укажите кодировку
message.BodyEncoding = Encoding.ASCII;
// Сохранить сообщение в формате EML/EMLX/MSG/MHTML
message.Save("EmailMessage.msg", SaveOptions.DefaultMsgUnicode);
Отправляйте электронные письма Outlook синхронно или асинхронно в C#
Теперь, когда вы создали сообщение электронной почты, вы можете отправить его получателям синхронно или асинхронно. Класс SmtpClient позволяет отправлять сообщения электронной почты Outlook с использованием SMTP (простой протокол передачи почты). Ниже приведены шаги для отправки электронной почты на C# с помощью Aspose.Email для .NET.
- Создайте или загрузите сообщение электронной почты с помощью класса MailMessage.
- Создайте экземпляр класса SmtpClient и задайте хост, имя пользователя, пароль и номер порта.
- Отправляйте электронную почту синхронно или асинхронно, используя метод SmtpClient.Send или SmtpClient.SendAsync соответственно.
Синхронная отправка электронной почты Outlook на C#
// Создайте экземпляр MailMessage. Вы можете создать новое сообщение или загрузить уже созданный файл сообщения (eml, msg и т. д.)
MailMessage msg = MailMessage.Load("EmailMessage.msg");
// Создайте экземпляр класса SmtpClient
SmtpClient client = new SmtpClient();
// Укажите почтовый хост, имя пользователя, пароль, номер порта и параметры безопасности.
client.Host = "mail.server.com";
client.Username = "username";
client.Password = "password";
client.Port = 587;
client.SecurityOptions = SecurityOptions.SSLExplicit;
try
{
// Отправить это письмо
client.Send(msg);
}
catch (Exception ex)
{
Trace.WriteLine(ex.ToString());
}
Отправить электронное письмо Outlook асинхронно в C#
// Создайте экземпляр MailMessage. Вы можете создать новое сообщение или загрузить уже созданный файл сообщения (eml, msg и т. д.)
MailMessage msg = MailMessage.Load("EmailMessage.msg");
// Создайте экземпляр класса SmtpClient
SmtpClient client = new SmtpClient();
// Укажите почтовый хост, имя пользователя, пароль, номер порта и параметры безопасности.
client.Host = "mail.server.com";
client.Username = "username";
client.Password = "password";
client.Port = 587;
client.SecurityOptions = SecurityOptions.SSLExplicit;
// Укажите почтовый хост, имя пользователя, пароль, номер порта и параметры безопасности.
client.Host = "mail.server.com";
client.Username = "username";
client.Password = "password";
client.Port = 587;
client.SecurityOptions = SecurityOptions.SSLExplicit;
// Отправка сообщений
client.SendAsync(msg);
Console.WriteLine("Sending message...");
msg.Dispose();
Отправка массовых рассылок на C#
Вы также можете создавать и отправлять электронные письма массово. Класс MailMessageCollection используется для хранения коллекции сообщений электронной почты, которые вы хотите отправить. В следующем примере кода показано, как отправлять массовые электронные письма на C#.
// Создайте SmtpClient и укажите сервер, порт, имя пользователя и пароль
SmtpClient client = new SmtpClient("mail.server.com", 25, "Username", "Password");
// Создайте экземпляры класса MailMessage и укажите «Кому», «От», «Тема» и «Сообщение».
MailMessage message1 = new MailMessage("msg1@from.com", "msg1@to.com", "Subject1", "message1, how are you?");
MailMessage message2 = new MailMessage("msg1@from.com", "msg2@to.com", "Subject2", "message2, how are you?");
MailMessage message3 = new MailMessage("msg1@from.com", "msg3@to.com", "Subject3", "message3, how are you?");
// Создайте экземпляр MailMessageCollection и добавьте в него сообщения электронной почты.
MailMessageCollection manyMsg = new MailMessageCollection();
manyMsg.Add(message1);
manyMsg.Add(message2);
manyMsg.Add(message3);
try
{
// Отправка сообщений
client.Send(manyMsg);
}
catch (Exception ex)
{
Trace.WriteLine(ex.ToString());
}
Живые демонстрации
Вывод
В этой статье вы узнали, как создавать электронные письма Outlook на C#. Кроме того, вы увидели, как отправлять электронные письма синхронно или асинхронно из приложений .NET. Вы можете изучить документацию Aspose.Email для .NET, чтобы узнать больше об API.