メールを作成するとき、多くの場合、ファイルを添付する必要があります。通常、開発者は 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 中国語 Web サイトの他の関連記事を参照してください。