如何在不将文件保存到磁盘的情

时间:2009-04-07 04:53:51

标签: email attachment

我需要通过电子邮件发送vcal文件。我想发送文件而不在磁盘上创建它。 我有字符串格式的文件。

3 个答案:

答案 0 :(得分:1)

以下是我认为您在C#中寻找的内容

 System.IO.StringReader stream = new System.IO.StringReader("xyz");
 Attachment attach = new Attachment(stream);
 MailMessage msg = new MailMessage();
 msg.Attachments.Add(attach);
 SmtpClient client = new SmtpClient();
 client.Send(msg);

“xyz”应替换为附件的字符串。上面的代码将允许您向MailMessage对象添加附件,而无需从磁盘检索该对象的数据,这就是我认为您的意思而不是“内存”。

答案 1 :(得分:0)

您可以做的最好的事情(如果您使用的是图形电子邮件程序)只是将.vcal文件保存到临时目录,然后将该路径传递给邮件程序。

您可以使用mktemp等函数生成临时文件名。

答案 2 :(得分:0)

我不确定你的意思是不是'创造记忆'。操作系统通过从磁盘读取任何文件到内存缓冲区来工作。因此,很可能该文件在某些​​时候仍会驻留在内存中。此外,当您将文件传递给将调度它的程序或工具时,它也将通过一些内存缓冲区。