В этом блоге вы узнаете, как создавать сообщения электронной почты Outlook (включая MSG, EML, EMLX или MHTML) и отправлять электронные письма синхронно или асинхронно с помощью C# в .NET или .NET Core.

С# отправить электронную почту Outlook

Электронная почта стала основным источником обмена сообщениями и обмена контентом, таким как документы, изображения или другие типы файлов. Частота использования электронной почты больше в онлайн-системах для обмена важными уведомлениями или документами с несколькими организациями. В таких случаях подготовка шаблона и отправка электронных писем нескольким заинтересованным сторонам вручную может быть трудоемкой и беспокойной задачей.

Здесь возникает потребность в службе автоматизации электронной почты, с помощью которой вы можете легко создавать и отправлять электронные письма. Итак, в этой статье я научу вас создавать сообщения электронной почты популярных форматов 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.

Смотрите также