首页 > 后端开发 > C++ > 如何在 C# 中使用 MemoryStream 将文件附加到电子邮件?

如何在 C# 中使用 MemoryStream 将文件附加到电子邮件?

Mary-Kate Olsen
发布: 2025-01-02 16:06:39
原创
537 人浏览过

How to Attach Files to Emails using MemoryStream in C#?

在 C 语言中使用 MemoryStream 将文件附加到 MailMessage

撰写电子邮件时,经常需要附加文件。通常,开发人员使用 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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板