我正在使用以下方法从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参数的哪些属性可能告诉我它是否在某种程度上对附件无效?或者想一想我可能会尝试的其他事情?
谢谢。
大卫
答案 0 :(得分:2)
将内容写入后,是否已将内存流的位置重置为0?