首页 >后端开发 >C++ >如何在 C# 中将 MemoryStream 中的文件附加到 MailMessage?

如何在 C# 中将 MemoryStream 中的文件附加到 MailMessage?

DDD
DDD原创
2025-01-02 15:27:39444浏览

How to Attach Files from a MemoryStream to a MailMessage in C#?

在 C 中将 MemoryStream 中的文件附加到 MailMessage

在 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.MimeTypeNames,例如 System.Net.Mime.MediaTypeNames.Application.Pdf。

根据 Mime 类型,确保在 FileName 中指定正确的扩展名,例如“myFile .pdf”。

以上是如何在 C# 中将 MemoryStream 中的文件附加到 MailMessage?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn