【发布时间】:2011-03-02 03:54:22
【问题描述】:
我正在使用以下方法从 MemoryStream 创建附件:
public void AddAttachment(Stream stream, string filename, string mimeType)
{
byte[] buffer = ((MemoryStream) stream).GetBuffer();
Attachment attachment = new Attachment(stream, filename, mimeType);
_mail.Attachments.Add(attachment);
}
请注意,第一行不是必需的,对于附件功能也不是必需的,在调试期间将 byte[] 放在手边很有用,这样我就可以看到它有多大。 (它通常有大约 80,000 个元素。)
代码运行良好,电子邮件已发送。当 Outlook 收到电子邮件时,它会在收件箱中显示附件符号,但当您进入电子邮件时,附件不存在。
很遗憾,我无法访问邮件服务器以了解有关电子邮件的更多信息,例如附件的外观、大小等。
谁能建议 MemoryStream 参数的哪些属性可以告诉我它是否以某种方式对附件无效?或者想想我还可以尝试什么?
谢谢。
大卫
【问题讨论】:
-
但是附件最后是文件。为什么不创建虚假/虚拟文件而不是使用 MemoryStream?
-
因为我想使用 MemoryStream。
-
这是我得到的确切代码,但正如 David M 在他的回答中所说,我首先使用
stream.Position = 0,这对我有用。
标签: .net stream attachment mailmessage