我有一个byte[]
的文件内容。我想使用System.Net.Mail
将其作为附件发送。
我注意到附件类有1个重载,它接受一个流。
Attachment att = new Attachment(Stream contentStream,string name);
是否可以通过此重载传递byte[]
?
答案 0 :(得分:188)
最简单的方法:
Attachment att = new Attachment(new MemoryStream(bytes), name);
请注意,除非您使用异步操作执行时髦的操作,否则MemoryStream
可以安全地保留不受限制的内容,这可能会让您的生活更轻松。诚然,没有保证将来也是如此,但我认为它不太可能改变。我看不出任何关于处理附件是否处理其流的指示:(
答案 1 :(得分:33)
您需要使用相应的MemoryStream constructor overload将byte[]
转换为MemoryStream
。
Attachment att = new Attachment(new MemoryStream(myBytes), name);
请注意,Attachment's constructor的名称参数指定附件内容类型的名称,而不是附件本身的名称。