
在發送電子郵件時,您可能需要發送多媒體內容,如圖像、音頻和視頻。這就是 MIME(多用途互聯網郵件擴展)消息派上用場的地方。在本文中,我們將探討如何以編程方式創建 EML 消息。在文章結束時,您將了解 如何創建 MIME 消息,將圖像添加到電子郵件的 HTML 內容中並將電子郵件保存為 EML 格式。
.NET API 創建 MIME 消息
在您創建第一個 MIME 消息之前,第一步是將 Aspose.Email for .NET 安裝到您的項目中。這是一個強大的 C# 開發者庫,提供了一套全面的工具,用於處理電子郵件消息,包括以編程方式創建 MIME 消息的能力。該庫幫助開發者輕鬆操作 MIME 消息的各個方面,例如附件、主體、標頭、編碼等。 您可以通過 NuGet 安裝庫或 下載 其 DLL。
PM> Install-Package Aspose.Email
從頭開始創建 EML 文件
既然您的 API 已經安裝好了,是時候從頭開始創建您的第一個 eml。最簡單的方式之一是使用 Aspose.Email 的 MailMessage 類。MailMessage 類允許您創建一個電子郵件消息對象,具有各種屬性和方法,可以讓您設置發件人、收件人、主題、主體、附件、標頭和電子郵件的其他詳細信息。
以下步驟和代碼片段將幫助您從頭開始創建 EML:
- 使用默認構造函數創建一個新的 MailMessage 對象。
- 根據您的需求設置 MailMessage 對象的屬性。
- 使用 Save 方法將 MailMessage 對象保存為 EML 文件。
// Create a new MailMessage object | |
var eml = new MailMessage() | |
{ | |
// Set the sender address | |
From = "sender@sender.com", | |
// Add a recipient address | |
To = "receiver@receiver.com", | |
// Set the subject | |
Subject = "New message", | |
// Set the HTML body | |
HtmlBody = @"<!DOCTYPE html> | |
<html> | |
<head> | |
<style> | |
h3{font-family:Verdana, sans-serif;color:#000000;background-color:#ffffff;} | |
p {font-family:Verdana, sans-serif;font-size:14px;font-style:normal; | |
font-weight:normal;color:#000000;background-color:#ffffff;} | |
</style> | |
</head> | |
<body> | |
<h3>New message</h3> | |
<p>This is a new message created by Aspose.Email.</p> | |
</body> | |
</html>" | |
}; | |
// Save the MailMessage object to an EML file | |
eml.Save("message.eml", SaveOptions.DefaultEml); |
MailMessage 類的 Save 方法接受兩個參數:文件路徑和保存選項。保存選項指定輸出文件的格式。
將圖像添加到 HTML 內容
要執行此功能,您需要將圖像嵌入到 HTML 主體中。您可以使用 “img” 標籤來實現這一點。
以下代碼片段顯示了如何將圖像添加到消息的 HTML 主體中。
- HTML 主體包含一個圖像標籤,其源屬性設置為
cid:image1
。 - 使用 AlternateView 類獲取包含嵌入圖像的消息主體的替代視圖。
- 使用 LinkedResource 類表示嵌入的圖像,其內容 ID 設置為
image1
。 - 最後,將替代視圖添加到消息的替代視圖集合中。
// Create a new instance of MailMessage class | |
var eml = new MailMessage | |
{ | |
// Set sender and recipient | |
From = new MailAddress("sender@domain.com"), | |
To = new MailAddress("recipient@domain.com"), | |
// Set subject and body | |
Subject = "New message with image", | |
HtmlBody = @"<!DOCTYPE html> | |
<html> | |
<head> | |
<style> | |
h3{font-family:Verdana, sans-serif;color:#000000;background-color:#ffffff;} | |
p {font-family:Verdana, sans-serif;font-size:14px;font-style:normal; | |
font-weight:normal;color:#000000;background-color:#ffffff;} | |
</style> | |
</head> | |
<body> | |
<h3>New message</h3> | |
<p>This is a new message created by Aspose.Email.</p> | |
<img src='cid:myImage' /> | |
</body> | |
</html>" | |
}; | |
var alternateView = eml.AlternateViews.GetView(MediaTypeNames.Text.Html); | |
var imageResource = new LinkedResource(path + "image.png", MediaTypeNames.Image.Png) | |
{ | |
ContentId = "image1" | |
}; | |
alternateView.LinkedResources.Add(imageResource); | |
eml.Save("message_with_image.eml", SaveOptions.DefaultEml); |
從 HTML 文件創建 EML 文件
其中一種方法是從 HTML 文件開始並將其轉換為 EML。如果您有一個要作為電子郵件消息發送的 HTML,這可能很有用。
為此,我們首先需要擁有 HTML 內容。讓我們稱這個文件為 content.html
。以下是它的示例:
<!DOCTYPE html>
<html>
<head>
<title>我的電子郵件</title>
</head>
<body>
<h1>你好,</h1>
<img src="logo.png" alt="標誌">
<p>這是我用 HTML 創建的第一封電子郵件。</p>
</body>
</html>
此外,您必須事先準備好所有包含在 HTML 中的圖像,並在 HTML 文件中指定正確的路徑。
現在,我們可以輕鬆地創建一個 MailMessage,通過從 content.html
設置 HTML 主體。
- 首先,創建一個新的 HtmlLoadOptions 對象。
- 在 PathToResources 中設置包含圖像路徑的字符串。
- 如果 EML 應包含帶有純文本的 AlternateView,則將 ShouldAddPlainTextView 屬性設置為 true。
- 通過加載 HTML 文件並將 HtmlLoadOptions 對象作為參數傳遞來創建 MailMessage 對象。
- 設置其他消息屬性。
- 最後,使用 Save 方法將 MailMessage 對象保存為 EML 文件。
var htmlloadOptions = new HtmlLoadOptions | |
{ | |
PathToResources = path, | |
ShouldAddPlainTextView = true | |
}; | |
var eml = MailMessage.Load(path + @"content.html", htmlloadOptions); | |
// Set sender and recipient | |
eml.From = new MailAddress("sender@domain.com"); | |
eml.To = new MailAddress("recipient@domain.com"); | |
// Set subject | |
eml.Subject = "New message from HTML"; | |
// Save the message in EML format | |
eml.Save("message_from_html.eml", SaveOptions.DefaultEml); |
改善 Outlook 中 HTML 消息顯示的提示
要在 Outlook 中查看您的 HTML 消息,您需要確保其代碼與 Outlook 渲染引擎兼容,這與大多數網頁瀏覽器不同。影響 Outlook 中 HTML 電子郵件的一些常見問題包括:
- Outlook 不支持某些標籤和 CSS 屬性,例如背景圖像、浮動、邊距、填充等。您可能需要使用內聯樣式、表格或條件註釋來實現所需的佈局和格式。
- Outlook 可能會在元素之間添加多餘的空格或行,或完全刪除某些元素。您可能需要使用不斷行空格、零寬度空格或空表格單元格來防止這種情況。
- Outlook 可能會更改 HTML 文件的編碼或字符集,這可能導致某些字符顯示不正確。您可能需要使用 meta 標籤指定編碼和字符集。
結論
在這篇博文中,您學會了如何使用 Aspose.Email 在 C# 中以編程方式創建 MIME 消息。逐步教程和代碼示例顯示了如何從頭開始和從 HTML 文件創建 EML 文件,將圖像添加到電子郵件消息的 HTML 內容中,並提供了有用的提示,幫助您改善 HTML 消息在 Outlook 中的顯示。
- 您可以深入了解 Aspose.Email for .NET 並免費試用。
- 您還可以查看 文件 中 Aspose.Email 的更多功能和功能。
- 歡迎您在我們的 論壇 提問。