У цьому блозі ви дізнаєтесь, як створювати повідомлення електронної пошти Outlook (зокрема MSG, EML, EMLX або MHTML) у C#. Крім того, ми продемонструємо, як надсилати електронні листи синхронно чи асинхронно за допомогою C# у .NET або .NET Core.

C# надсилає електронну пошту Outlook

Електронна пошта стала основним джерелом обміну повідомленнями та вмістом, таким як документи, зображення чи інші типи файлів. Електронні листи частіше використовуються в онлайн-системах для обміну важливими сповіщеннями або документами з кількома суб’єктами. У таких випадках підготовка шаблону та надсилання електронних листів багатьом зацікавленим сторонам вручну може бути трудомістким і неспокійним завданням.

Тут виникає потреба в службі автоматизації електронної пошти, за допомогою якої ви можете легко створювати та надсилати електронні листи. Отже, у цій статті я збираюся навчити вас створювати повідомлення електронної пошти в популярних форматах Outlook і автоматизувати процес надсилання електронних листів програмним шляхом. Прочитавши цю статтю, ви зможете:

  • створити та зберегти повідомлення електронної пошти в C#,
  • створити електронний лист із текстом HTML у C#,
  • створити електронний лист із певним кодуванням у C#,
  • надсилати електронні листи синхронно за допомогою SMTP у C#,
  • надсилати електронні листи асинхронно за допомогою SMTP у C#,
  • і надсилайте масові електронні листи в C#.

C# API для створення та надсилання електронних листів Outlook

Щоб автоматизувати процес створення та надсилання повідомлень електронної пошти, ми будемо використовувати Aspose.Email for .NET, який є потужним API для роботи з електронною поштою та її обробки. Він підтримує популярні формати електронної пошти, включаючи повідомлення MS Outlook, такі як MSG, EML/EMLX тощо. Ви можете безпосередньо завантажити API DLL або встановити його за допомогою NuGet Package Manager або Package Manager Console у Visual Studio .

PM> Install-Package Aspose.Email

Після того, як ви створили програму C# (Console, ASP.NET тощо) і встановили Aspose.Email for .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);

C# Створіть електронний лист Outlook із певним кодуванням

Ви також можете вказати бажаний стандарт кодування, щоб повідомити веб-переглядачу чи програмі електронної пошти, як інтерпретувати символи в тілі електронного листа. Для цього використовується властивість 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 (Simple Mail Transfer Protocol). Нижче наведено кроки для надсилання електронного листа на C# за допомогою Aspose.Email for .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());
}

API електронної пошти Aspose для C# – демонстрації в реальному часі

Висновок

У цій статті ви дізналися, як створювати електронні листи Outlook на C#. Крім того, ви бачили, як надсилати електронні листи синхронно чи асинхронно з програм .NET. Ви можете переглянути документацію Aspose.Email for .NET, щоб дізнатися більше про API.

Дивись також

Додати й оновити правила папки вхідних повідомлень на сервері MS Exchange у C#Додавання та видалення учасників у списках розсилки MS Exchange у JavaНадіслати документ Word у тексті електронної пошти за допомогою C#
Додати та оновити правила папки вхідних повідомлень на сервері MS Exchange у JavaДодавання, оновлення та видалення контактів із Microsoft Exchange Server у C#Додавання, оновлення та видалення контактів із Microsoft Exchange Server у Java
Додавання та видалення учасників у списках розсилки MS Exchange у C#Надсилайте електронні листи через SMTP у Python