.NET:从MemoryStream的

问题描述:

创建电子邮件附件的问题

我用下面的方法来创建一个MemoryStream附件:.NET:从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参数可能会告诉我,如果它在某种方式无效的附件?或者想想我可能会尝试的其他事情?

谢谢。

David

+0

但附件最后是文件。为什么不使用MemoryStream创建假/伪文件? – Marcote 2010-06-10 12:54:23

+0

因为我想使用MemoryStream。 – David 2010-06-10 12:55:03

+0

这就是我得到的确切代码,但正如David M在他的回答中所说的,我首先要做'stream.Position = 0',这对我很有用。 – 2010-06-10 13:00:12

您是否在将内容写入内存之后将内存流的位置重置为0?

+0

就是这样!就是这样! 非常感谢。 – David 2010-06-10 13:03:18

+0

没问题。很高兴这很简单。 – 2010-06-10 13:07:57

+0

有趣的音乐会时间表。新世界交响乐团或星球大战主题在哪里? ;) – David 2010-06-10 13:22:34