撰寫電子郵件時,經常需要附加文件。通常,開發人員使用 FileStream 將檔案儲存到磁碟,然後使用 MailMessage.Attachments.Add() 方法附加它。但是,另一種方法是使用 MemoryStream 將檔案儲存在記憶體中,並將其直接傳遞給 Attachment 物件。
要實現此目的,請按照以下範例程式碼中概述的步驟操作:
// Create a MemoryStream and populate it with the file content System.IO.MemoryStream ms = new System.IO.MemoryStream(); System.IO.StreamWriter writer = new System.IO.StreamWriter(ms); writer.Write("Hello its my sample file"); writer.Flush(); writer.Dispose(); ms.Position = 0; // Define the file type based on MIME type System.Net.Mime.ContentType ct = new System.Net.Mime.ContentType(System.Net.Mime.MediaTypeNames.Text.Plain); ct.Parameters.Add("name", "myFile.txt"); // Set the attachment filename, including extension // Create an Attachment object from the MemoryStream System.Net.Mail.Attachment attach = new System.Net.Mail.Attachment(ms, ct); // Attach the file to the email message mailMessage.Attachments.Add(attach); // Send the email, assuming you have an existing `mailMessage` object mailMessage.Send(); // Close the MemoryStream after sending the email ms.Close();
根據檔案類型,您可以指定不同的MIME 類型。例如,若要附加 PDF 文件,請使用 System.Net.Mime.MediaTypeNames.Application.Pdf。
確保 Attachment 物件的 FileName 屬性與指定的 MIME 類型相符。在上面的範例中,我們在使用 MediaTypeNames.Text.Plain MIME 類型時指定「myFile.txt」。
以上是如何在 C# 中使用 MemoryStream 將文件附加到電子郵件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!