在此博客中,您將了解如何使用 C# 創建 Outlook 電子郵件(包括 MSG、EML、EMLX 或 MHTML)。此外,我們還將演示如何在 .NET 或 .NET Core 中使用 C# 同步或異步發送電子郵件。

C#發送outlook郵件

電子郵件已成為交換消息和共享文檔、圖像或其他類型文件等內容的主要來源。在與多個實體共享重要通知或文檔的在線系統中,使用電子郵件的頻率更高。在這種情況下,準備模板並手動向多個利益相關者發送電子郵件可能是一項耗時且繁忙的任務。

這就需要一個電子郵件自動化服務,您可以使用它來無縫地創建和發送電子郵件。因此,在本文中,我將教您如何創建流行的 Outlook 格式的電子郵件,並以編程方式自動執行發送電子郵件的過程。閱讀本文後,您將能夠:

  • 在 C# 中創建並保存電子郵件消息,
  • 在 C# 中創建帶有 HTML 正文的電子郵件,
  • 在 C# 中創建具有特定編碼的電子郵件,
  • 在 C# 中使用 SMTP 同步發送電子郵件,
  • 在 C# 中使用 SMTP 異步發送電子郵件,
  • 並在 C# 中發送批量電子郵件。

用於創建和發送 Outlook 電子郵件的 C# API

為了自動化創建和發送電子郵件的過程,我們將使用 Aspose.Email for .NET,這是一個強大的電子郵件操作和處理 API。它支持流行的電子郵件格式,包括 MSG、EML/EMLX 等 MS Outlook 消息。您可以直接下載 API 的 DLL 或通過 NuGet 包管理器 或 Visual Studio 中的包管理器控制台安裝它.

PM> Install-Package Aspose.Email

在您創建了一個 C#(控制台、ASP.NET 等)應用程序並安裝了 Aspose.Email for .NET 之後,您就可以開始在 C# 中創建和發送電子郵件了。

在 C# 中創建 Outlook 電子郵件

為了創建或操作 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);

在 C# 中創建帶有 HTML 正文的 Outlook 電子郵件

HTML 標籤用於使電子郵件的正文更加結構化、更具表現力,並使用不同的元素(例如表格、圖像、列表等)進行豐富。如果您想創建具有 HTML 正文的電子郵件,您可以使用 MailMessage.HtmlBody 屬性。以下代碼示例展示瞭如何在 C# 中創建帶有 HTML 正文的 Outlook 電子郵件。

// 創建 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 屬性用於此目的。以下代碼示例顯示瞭如何在使用 C# 創建 Outlook 電子郵件時設置正文編碼。

// 創建 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);

在 C# 中同步或異步發送 Outlook 電子郵件

現在,一旦您創建了電子郵件消息,您就可以將其同步或異步發送給收件人。 SmtpClient 類允許您使用 SMTP(簡單郵件傳輸協議)發送 Outlook 電子郵件消息。以下是使用 Aspose.Email for .NET 在 C# 中發送電子郵件的步驟。

  • 使用 MailMessage 類創建或加載電子郵件消息。
  • 創建 SmtpClient 類的實例並設置主機、用戶名、密碼和端口號。
  • 分別使用 SmtpClient.SendSmtpClient.SendAsync 方法同步或異步發送電子郵件。

在 C# 中同步發送 Outlook 電子郵件

// 創建 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());
}

在 C# 中異步發送 Outlook 電子郵件

// 創建 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 類的實例並指定 To、From、Subject 和 Message
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());
}

Aspose Email API for C# - 現場演示

結論

在本文中,您學習瞭如何使用 C# 創建 Outlook 電子郵件。此外,您還了解瞭如何從 .NET 應用程序中同步或異步發送電子郵件。您可以瀏覽 Aspose.Email for .NET 的 文檔 以了解有關 API 的更多信息。

也可以看看

在 C# 中的 MS Exchange 服務器上添加和更新收件箱規則在 Java 中添加和刪除 MS Exchange 分發列表中的成員使用C#在電子郵件正文中發送Word文檔
在 Java 中添加和更新 MS Exchange 服務器上的收件箱規則在 C# 中從 Microsoft Exchange Server 添加、更新和刪除聯繫人在 Java 中從 Microsoft Exchange Server 添加、更新和刪除聯繫人
在 C# 中的 MS Exchange 分發列表中添加和刪除成員在 Python 中通過 SMTP 發送電子郵件