Trong blog này, bạn sẽ tìm hiểu cách tạo email Outlook (bao gồm MSG, EML, EMLX hoặc MHTML) trong C#. Ngoài ra, chúng tôi sẽ trình bày cách gửi email đồng bộ hoặc không đồng bộ bằng C# trong .NET hoặc .NET Core.

C# gửi email triển vọng

Email đã trở thành nguồn chính để trao đổi tin nhắn và chia sẻ nội dung như tài liệu, hình ảnh hoặc các loại tệp khác. Tần suất sử dụng email nhiều hơn trong các hệ thống trực tuyến để chia sẻ các thông báo hoặc tài liệu quan trọng với nhiều thực thể. Trong những trường hợp như vậy, việc chuẩn bị một mẫu và gửi email cho nhiều bên liên quan theo cách thủ công có thể là một nhiệm vụ tốn nhiều thời gian và bận rộn.

Đây là nhu cầu về Dịch vụ tự động hóa email mà bạn có thể tạo và gửi email một cách liền mạch. Vì vậy, trong bài viết này, tôi sẽ hướng dẫn bạn cách tạo email có định dạng Outlook phổ biến và tự động hóa quy trình gửi email theo chương trình. Sau khi đọc bài viết này, bạn sẽ có thể:

  • tạo và lưu một email trong C#,
  • tạo email có nội dung HTML trong C#,
  • tạo một email có mã hóa cụ thể trong C#,
  • gửi email đồng bộ bằng SMTP trong C#,
  • gửi email không đồng bộ bằng SMTP trong C#,
  • và gửi email hàng loạt trong C#.

API C# để tạo và gửi email Outlook

Để tự động hóa quá trình tạo và gửi email, chúng tôi sẽ sử dụng Aspose.Email for .NET, một API xử lý và thao tác email mạnh mẽ. Nó hỗ trợ các định dạng email phổ biến bao gồm các thư MS Outlook như MSG, EML/EMLX, v.v. Bạn có thể tải xuống trực tiếp DLL của API hoặc cài đặt qua NuGet Package Manager hoặc Package Manager Console trong Visual Studio .

PM> Install-Package Aspose.Email

Sau khi bạn đã tạo ứng dụng C# (Bảng điều khiển, ASP.NET, v.v.) và cài đặt Aspose.Email for .NET, bạn có thể bắt đầu tạo và gửi email trong C#.

Tạo Email Outlook trong C#

Để tạo hoặc thao tác với email Outlook, Aspose.Email cung cấp lớp MailMessage. Lớp này cho phép bạn đặt tất cả các thuộc tính của email (Chủ đề, Đến, Từ và Nội dung), thêm tệp đính kèm và lưu thư ở các định dạng email khác nhau như EML, MSG, MHTML, v.v. Sau đây là các bước để tạo một tin nhắn email:

  • Tạo một thể hiện của lớp MailMessage.
  • Đặt thuộc tính của tin nhắn.
  • Lưu email bằng phương thức MailMessage.Save().

Mẫu mã sau đây cho biết cách tạo và lưu thư email trong C#.

// Tạo một thể hiện mới của lớp MailMessage
MailMessage message = new MailMessage();

// Đặt chủ đề của tin nhắn, nội dung và thông tin người gửi
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);

// Thêm vào người nhận và người nhận CC
message.To.Add(new MailAddress("to1@domain.com", "Recipient 1", false));
message.CC.Add(new MailAddress("cc1@domain.com", "Recipient 3", false));

// Thêm tệp đính kèm
message.Attachments.Add(new Attachment("word.docx"));

// Lưu tin nhắn ở định dạng EML, EMLX, MSG và 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);

Tạo Email Outlook với Nội dung HTML trong C#

Các thẻ HTML được sử dụng để làm cho nội dung của email có cấu trúc hơn, dễ trình bày hơn và phong phú hơn với các thành phần khác nhau như bảng, hình ảnh, danh sách, v.v. Trong trường hợp bạn muốn tạo email có nội dung HTML, bạn có thể sử dụng thuộc tính MailMessage.HtmlBody. Mẫu mã sau đây cho biết cách tạo email Outlook có nội dung HTML trong C#.

// Tạo một thể hiện mới của lớp MailMessage
MailMessage message = new MailMessage();

// Đặt chủ đề của tin nhắn, nội dung Html và thông tin người gửi
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);

// Thêm vào người nhận và người nhận CC
message.To.Add(new MailAddress("to1@domain.com", "Recipient 1", false));
message.CC.Add(new MailAddress("cc1@domain.com", "Recipient 3", false));

// Lưu tin nhắn ở định dạng EML/EMLX/MSG/MHTML
message.Save("EmailMessage.eml", SaveOptions.DefaultEml);

C# Tạo Email Outlook với Mã hóa Đặc biệt

Bạn cũng có thể chỉ định tiêu chuẩn mã hóa mong muốn của mình để thông báo cho trình duyệt hoặc ứng dụng email về cách diễn giải các ký tự trong phần nội dung của email. Thuộc tính MailMessage.BodyEncoding được sử dụng cho mục đích này. Mẫu mã sau đây cho biết cách đặt mã hóa nội dung khi tạo email Outlook bằng C#.

// Tạo một thể hiện mới của lớp MailMessage
MailMessage message = new MailMessage();

// Đặt chủ đề của tin nhắn, nội dung Html, thông tin người gửi và người nhận
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));

// Chỉ định mã hóa 
message.BodyEncoding = Encoding.ASCII;

// Lưu tin nhắn ở định dạng EML/EMLX/MSG/MHTML
message.Save("EmailMessage.msg", SaveOptions.DefaultMsgUnicode);

Gửi email Outlook đồng bộ hoặc không đồng bộ trong C#

Bây giờ, khi bạn đã tạo thông báo email, bạn có thể gửi nó đến người nhận đồng bộ hoặc không đồng bộ. Lớp SmtpClient cho phép bạn gửi email Outlook bằng SMTP (Giao thức truyền thư đơn giản). Sau đây là các bước để gửi email trong C# bằng Aspose.Email for .NET.

  • Tạo hoặc tải một email bằng lớp MailMessage.
  • Tạo một thể hiện của lớp SmtpClient và đặt máy chủ, tên người dùng, mật khẩu và số cổng.
  • Gửi email đồng bộ hoặc không đồng bộ bằng phương pháp SmtpClient.Send hoặc SmtpClient.SendAsync tương ứng.

Gửi đồng bộ email Outlook trong C#

// Tạo phiên bản MailMessage. Bạn có thể tạo một tin nhắn mới hoặc tải một tệp tin nhắn đã tạo (eml, msg, v.v.)
MailMessage msg = MailMessage.Load("EmailMessage.msg");

// Tạo một thể hiện của lớp SmtpClient
SmtpClient client = new SmtpClient();

// Chỉ định Máy chủ gửi thư, Tên người dùng, Mật khẩu, Cổng # và tùy chọn Bảo mật của bạn
client.Host = "mail.server.com";
client.Username = "username";
client.Password = "password";
client.Port = 587;
client.SecurityOptions = SecurityOptions.SSLExplicit;
try
{
	// Gửi email này
	client.Send(msg); 
}
catch (Exception ex)
{
	Trace.WriteLine(ex.ToString());
}

Gửi Email Outlook không đồng bộ trong C#

// Tạo phiên bản MailMessage. Bạn có thể tạo một tin nhắn mới hoặc tải một tệp tin nhắn đã tạo (eml, msg, v.v.)
MailMessage msg = MailMessage.Load("EmailMessage.msg");

// Tạo một thể hiện của lớp SmtpClient
SmtpClient client = new SmtpClient();

// Chỉ định Máy chủ gửi thư, Tên người dùng, Mật khẩu, Cổng # và tùy chọn Bảo mật của bạn
client.Host = "mail.server.com";
client.Username = "username";
client.Password = "password";
client.Port = 587;
client.SecurityOptions = SecurityOptions.SSLExplicit;

// Chỉ định Máy chủ gửi thư, Tên người dùng, Mật khẩu, Cổng # và tùy chọn Bảo mật của bạn
client.Host = "mail.server.com";
client.Username = "username";
client.Password = "password";
client.Port = 587;
client.SecurityOptions = SecurityOptions.SSLExplicit; 

// Gửi tin nhắn
client.SendAsync(msg);

Console.WriteLine("Sending message..."); 

msg.Dispose(); 

Gửi email hàng loạt trong C#

Bạn cũng có thể tạo và gửi email hàng loạt. Lớp MailMessageCollection được sử dụng để chứa tập hợp các email bạn muốn gửi. Mẫu mã sau đây cho biết cách gửi email hàng loạt trong C#.

// Tạo SmtpClient và chỉ định máy chủ, cổng, tên người dùng và mật khẩu
SmtpClient client = new SmtpClient("mail.server.com", 25, "Username", "Password");

// Tạo các thể hiện của lớp MailMessage và chỉ định Đến, Từ, Chủ đề và Tin nhắn
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?");

// Tạo một phiên bản MailMessageCollection và thêm các thông báo email vào đó
MailMessageCollection manyMsg = new MailMessageCollection();
manyMsg.Add(message1);
manyMsg.Add(message2);
manyMsg.Add(message3);
 
try
{  
	// Gửi tin nhắn
	client.Send(manyMsg); 
}
catch (Exception ex)
{
	Trace.WriteLine(ex.ToString());
}

Aspose Email API cho C# - Live Demos

Sự kết luận

Trong bài viết này, bạn đã học cách tạo email Outlook bằng C#. Hơn nữa, bạn đã biết cách gửi email đồng bộ hoặc không đồng bộ từ bên trong các ứng dụng .NET. Bạn có thể khám phá tài liệu của Aspose.Email for .NET để tìm hiểu thêm về API.

Xem thêm

Thêm và cập nhật quy tắc hộp thư đến trên MS Exchange Server trong C#Thêm và xóa thành viên trong danh sách phân phối MS Exchange trong JavaGửi tài liệu Word trong Nội dung email bằng C#
Thêm và cập nhật quy tắc hộp thư đến trên máy chủ MS Exchange bằng JavaThêm, cập nhật và xóa danh bạ khỏi Microsoft Exchange Server bằng C#Thêm, cập nhật và xóa danh bạ khỏi Microsoft Exchange Server bằng Java
Thêm và xóa thành viên trong danh sách phân phối MS Exchange trong C#Gửi email qua SMTP bằng Python