C# でメールを作成する場合、ファイルを添付する必要が生じる場合があります。従来、ファイルは添付ファイル コレクションに追加される前にディスクに保存されていました。ただし、この方法ではファイルをディスクに保存する必要があり、特定のシナリオでは非効率的で不必要になる可能性があります。
ファイルをディスクに保存する代わりに、MemoryStream を使用してメモリに保存できます。この手法を使用すると、中間手順なしでファイルを MailMessage オブジェクトに直接添付できます。
次のコード サンプルは、MemoryStream から MailMessage にファイルを添付する方法を示しています。
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; System.Net.Mime.ContentType ct = new System.Net.Mime.ContentType(System.Net.Mime.MediaTypeNames.Text.Plain); System.Net.Mail.Attachment attach = new System.Net.Mail.Attachment(ms, ct); attach.ContentDisposition.FileName = "myFile.txt"; // I guess you know how to send email with an attachment // after sending email ms.Close();
編集 1:
他のファイルを指定することもできますSystem.Net.Mime.MediaTypeNames.Application.Pdf.
Mime タイプに基づいて、System.Net.Mime.MimeTypeNames を使用してタイプを指定し、FileName に正しい拡張子が指定されていることを確認します。たとえば、 "myFile.pdf".
以上がC# で MemoryStream から MailMessage にファイルを添付する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。