我需要通过电子邮件发送vcal文件。我想发送文件而不在磁盘上创建它。 我有字符串格式的文件。
答案 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)
我不确定你的意思是不是'创造记忆'。操作系统通过从磁盘读取任何文件到内存缓冲区来工作。因此,很可能该文件在某些时候仍会驻留在内存中。此外,当您将文件传递给将调度它的程序或工具时,它也将通过一些内存缓冲区。